Compare commits
1467 Commits
old-master
...
remove-old
| Author | SHA1 | Date | |
|---|---|---|---|
|
3816c1bcb2
|
|||
| 4685c36e2f | |||
| c6c788f1e2 | |||
| 606386d006 | |||
| 1fba0a14a8 | |||
| d6621e939a | |||
| 67726c1d44 | |||
| a971ed6a54 | |||
| 06581e455c | |||
| dd7f24f455 | |||
| 64e2c39582 | |||
| 98d17b19d3 | |||
| 44cc60fcd8 | |||
| ca48ce556c | |||
| e8ac9dfb64 | |||
| 188ba6df0a | |||
| b1a37ae1fe | |||
| 63822bb054 | |||
| b94a1493d5 | |||
| 826d6a28ef | |||
| ae6b0ae161 | |||
| 01986c376b | |||
| e42058f08b | |||
| f3bfe89f27 | |||
| ee6f981006 | |||
| 92ee4a09d7 | |||
| 34f4b6aa37 | |||
| 2f2d6cbea8 | |||
| 69b09b6dda | |||
| a737d725ed | |||
| 6c1d1f3b2b | |||
| f338ef47d5 | |||
| 239e84c40c | |||
| ed820e79f8 | |||
| afeb415c98 | |||
| 256b24b97b | |||
| 492f73b600 | |||
| 76ddd85afe | |||
| 7affb8ef4b | |||
| 4ba823e5b7 | |||
| 51eecde59e | |||
| 9eb5c486ba | |||
| 5df49dcfab | |||
| b040bebd1d | |||
| f69629d2da | |||
| 0668f0db74 | |||
| 5fcd57a061 | |||
| ad1544759f | |||
| 2ffdd53d86 | |||
| e1c950a530 | |||
| f9632c37f8 | |||
| 1f0cb4ae76 | |||
| d49d078bed | |||
| e98fdb89ab | |||
| 6afe05b5fd | |||
| 7d5aebf882 | |||
| 94cbfd38a6 | |||
| 4da7780472 | |||
| a6dfc267fd | |||
| d6126501ba | |||
| ac0deb47b6 | |||
| f7d676de77 | |||
| cf1db201b2 | |||
| e6e4846529 | |||
| 084d556c56 | |||
| c7b5ec13b8 | |||
| 00dfe801f4 | |||
| ff0fc18d0a | |||
| 19c7e32678 | |||
| 017c19e7d0 | |||
| a36eff8749 | |||
| df17b11458 | |||
| 0dc7b7eb3d | |||
| dff6eaf587 | |||
| 4b6b67b587 | |||
| 20e7d244d1 | |||
| c5d3b8e7f0 | |||
| 6bbfb0d124 | |||
| 46d03d5ca7 | |||
| e366e6ce87 | |||
| e415f70bbb | |||
| 200c727bbf | |||
| 7413021440 | |||
| 20b4805335 | |||
| f7dff9deab | |||
| f569933732 | |||
| ee895d2e4f | |||
| 5ee8623af2 | |||
| a0e4b209b0 | |||
| ce25867421 | |||
| f89bba35a6 | |||
| 2c8d7ed855 | |||
| d591721a61 | |||
| 343b4f155e | |||
| 39a211a846 | |||
| 142985c505 | |||
| 3f3dc2d037 | |||
| 3269d763aa | |||
| f2d8ee8552 | |||
| 8d984a0672 | |||
| f3733418b2 | |||
| 1666c14a35 | |||
| b29f03ba6e | |||
| ae2ef1d2df | |||
| 9a48ae45bb | |||
| ce8b05b142 | |||
| 974bb56dc3 | |||
| 88d4d8e317 | |||
| 885e04e446 | |||
| 4a5787e0c6 | |||
| 6c11093033 | |||
| 26f52aa27d | |||
| 52fe43bfe1 | |||
| f0637b4569 | |||
| 6ddfea0a3a | |||
| e7adef1ffa | |||
| e82d3c3b9f | |||
| 4442b6a706 | |||
| 2d0b014dc7 | |||
| 867ba3ec5a | |||
| 2cacc2b265 | |||
| e4abd8d8f6 | |||
| 750504744f | |||
| c26ec1b6f1 | |||
| 2ef32f773c | |||
| fc9fcd602a | |||
| 0e37ab5fe1 | |||
| a1b387e454 | |||
| 380abe9957 | |||
| 37c12783bb | |||
| 7379e84e79 | |||
| b802f88df9 | |||
| bd94c4ad00 | |||
| 570c6e175d | |||
| 96661dd0d4 | |||
| 28db7799ea | |||
| 508059c99e | |||
| b9f9cc7d7a | |||
| eae0c7cb59 | |||
| 2280635cd6 | |||
| 16ada09600 | |||
| 0d291d715c | |||
| 66001f76f7 | |||
| 1e3b85067d | |||
| 36ee1f3adc | |||
| 25e9c071b0 | |||
| 80cee2dbd0 | |||
| ee92934c74 | |||
| db0f3fed91 | |||
| adeaa0484d | |||
| 815810830e | |||
| 7a52e1907c | |||
| 22a2e1b9e8 | |||
| f29461ae32 | |||
| 208197f099 | |||
| 479ca1b671 | |||
| 40529fbdcb | |||
| 9b0d3fb21e | |||
| d8444131d8 | |||
| af540456a6 | |||
| 42d6734da8 | |||
| 071a8084a0 | |||
| 24a0c58592 | |||
| 810a6dfcec | |||
| 47ad89dee1 | |||
| 8af1b259f5 | |||
| 560003d4fd | |||
| 68ff45075c | |||
| fc68d16197 | |||
| f6ec1293f4 | |||
| 4feeff978c | |||
| 7b19292912 | |||
| 0627db0eb9 | |||
| ae2f6dde41 | |||
| 3bf70656dc | |||
| 1cf989d727 | |||
| 19f734e622 | |||
| d6e3d9626c | |||
| 9c32e42dcc | |||
| 61e6d3232b | |||
| a87b99d0a4 | |||
| 43d32ac16d | |||
| d0fd8cde46 | |||
| 5223ea53f6 | |||
| 253426ce00 | |||
| df67b6cd26 | |||
| 766da21097 | |||
| 18461c0d59 | |||
| 028b151c78 | |||
| 7176b066bb | |||
| c3c3614f63 | |||
| e13288fc29 | |||
| 9d1944c658 | |||
| e9e3704b67 | |||
| 7d3c7342ae | |||
| 8f80ed2cce | |||
| d00f996f59 | |||
| e40fd24f26 | |||
| 83efd6c876 | |||
| f0c4206ab8 | |||
| 8b43a6ffb6 | |||
| 2bca10b0e4 | |||
| eec3e27d66 | |||
| e51ef52721 | |||
| 9dc67d402f | |||
| 62ec4e014a | |||
| 4d03842f7c | |||
| 8fedc5518e | |||
| 43dc336638 | |||
| 2b08fcd21a | |||
| 557618d43f | |||
| e8ac6cf0f3 | |||
| f8fc391cae | |||
| 6c1afa3fd8 | |||
| 008584b465 | |||
| a22c862192 | |||
| cd0c070439 | |||
| 201ff64b25 | |||
| 9bee145e25 | |||
| 4528b7c2a6 | |||
| 1eac0fcad8 | |||
| 8e5b2dc5cc | |||
| f89cd4d7e2 | |||
| dd15f9c943 | |||
| 4048b3327a | |||
| f4229e34f6 | |||
| 5208a3483b | |||
| 92eacfad20 | |||
| 80309d107b | |||
| d0f151595f | |||
| 93f8d3aa89 | |||
| d84645f3e1 | |||
| 55b71d6901 | |||
| 89c65ea578 | |||
| 129273e8d8 | |||
| fdac196c6c | |||
| 3f4b4fb810 | |||
| 2c7211ffa3 | |||
| 18f25307ab | |||
| 7c55d10ceb | |||
| 5c549faaa8 | |||
| 9fd35a9ce4 | |||
| 5487a93972 | |||
| fe16ea373f | |||
| 163434af09 | |||
| 71164400d4 | |||
| f887dacdea | |||
| 4f5c8dbbaf | |||
| 14b192b1d9 | |||
| 2b04812320 | |||
| f962816eab | |||
| c4583f787d | |||
| 22e40db034 | |||
| 501f11a8e5 | |||
| 505f101e00 | |||
| f44eebc133 | |||
| 2f6f6ba703 | |||
| 371b0c7e76 | |||
| ae34eacf4a | |||
| dab6f08d89 | |||
| 8190523c30 | |||
| d335d69ba6 | |||
| cec49eb5fc | |||
| 22db38c98f | |||
| 0d4eebbb59 | |||
| 025f6a0c0c | |||
| abc74c5445 | |||
| 6942f09f69 | |||
| 56f6855af7 | |||
| 81c822e68e | |||
| 53e80b1f19 | |||
| 21feb01e7b | |||
| 9ea7b2b475 | |||
| fce4d89e1d | |||
| 6b282375f8 | |||
| 6782fc6c5b | |||
| 73550ad5a9 | |||
| 48d67ef6c2 | |||
|
|
73e30d20e9 | ||
| 5f85082553 | |||
| 46f15ac201 | |||
| b442ddf1a4 | |||
| b006538147 | |||
| 995aa0b2e2 | |||
| 896ec0ad0f | |||
| 2d9d2701a9 | |||
| 74e11db8b6 | |||
| e046363e52 | |||
| aa3f816388 | |||
| 3eff2662bb | |||
| 260986b9f2 | |||
| 15afbe94bd | |||
| efd35a9cd1 | |||
| 50ad1d637c | |||
| c299d53146 | |||
| 152b71e718 | |||
| 0911d5b92a | |||
| 5ddae068af | |||
| d17be714ec | |||
| 28ce15d74d | |||
| 504f9bb570 | |||
| f158cb63e8 | |||
| 8860f76cad | |||
| b86798cd69 | |||
| 7ed74931cf | |||
| 6e9d33b483 | |||
| 58abaefbc4 | |||
| 5ea7827a8a | |||
| b17e4a13f9 | |||
| 9c4e60c2c2 | |||
| e7376917bd | |||
| 130e191d37 | |||
| 349f69e30a | |||
| 59ab6405c5 | |||
| a0dab66aa5 | |||
| 525cad4117 | |||
| 24ee74d614 | |||
| 15b4b28d2c | |||
| b1ce302e4b | |||
| b8b85f55cd | |||
| 1189626a6f | |||
| dbd95dd7b8 | |||
| 81b680a7d2 | |||
| ba60e121df | |||
| 432e6c8521 | |||
| c8160122b3 | |||
| 3863fc25a5 | |||
| 2b26cd2f46 | |||
| 30f2079f0b | |||
| 366436b6d3 | |||
| 9f1cd02144 | |||
| de89197a4a | |||
| 5d3820631a | |||
| 9c8a077828 | |||
| fce556cb28 | |||
| 82ccae1315 | |||
| 37ce5ef391 | |||
| 1df80460d2 | |||
| 7f17fe8874 | |||
|
|
3b21a32d83 | ||
| 5880a6e5f6 | |||
| c4d5135fde | |||
| 3f2b9a766b | |||
| ecbb45d6ac | |||
| c564d945d4 | |||
|
|
3ed644b88f | ||
|
|
8ceaddfea7 | ||
| 2a953d811c | |||
| fec4ddf6ab | |||
| 9aaea0da0e | |||
| ed887b0412 | |||
| f55b48ec86 | |||
| 1e52075c18 | |||
| 062b1c3c77 | |||
| 1520eaa64e | |||
| 54b4448e4b | |||
| 28a7496fbd | |||
| b5dae25e7f | |||
| bdc3670ccc | |||
| af590d5ace | |||
| 8a31895e48 | |||
| d9ae85ce4b | |||
| 20ded0c0df | |||
| fe1d3fbb80 | |||
| 5234ca32fd | |||
| cfe0c0e6e6 | |||
| 7afe7344ac | |||
| bd83ca53ab | |||
| e148de50d6 | |||
| ff34ab5732 | |||
| 3f17a489ef | |||
| 501a92376b | |||
| 4033854014 | |||
| e6b4af4b16 | |||
| cbf6f03a84 | |||
| 4316e7b12d | |||
| e7bdc1595a | |||
| f0f6b7c354 | |||
| 0086b9452a | |||
| 4111b22f57 | |||
|
|
85c70a8d6b | ||
| 0d9c99a24e | |||
| db98b1f698 | |||
| 84c4b6b81c | |||
| f605f8e5e4 | |||
| 8d5714c67b | |||
| 4727c98354 | |||
| bb1de835f7 | |||
| ebeb2ff549 | |||
| 9f245946d7 | |||
| 19e195b894 | |||
| 54c2bd119f | |||
| e5d85c1b38 | |||
| f1486b84c1 | |||
| 51e331a9d9 | |||
| 472f4b0334 | |||
| 425dca3e00 | |||
| e4080cf931 | |||
| fc9285f89d | |||
| fbe238f5b6 | |||
| 9874da566d | |||
| 91cdc91738 | |||
| db391ee9c2 | |||
| bab7a45587 | |||
| 8731a4797d | |||
| 9e889884c9 | |||
| 5412e14dba | |||
| 41a93cd176 | |||
| 873d2f1abc | |||
| 867e61acde | |||
| 7ace376e4e | |||
| ce4b196010 | |||
| f9c832654e | |||
| 4533c94b4f | |||
| 7b72b38023 | |||
| 779247691f | |||
| c724ad2ad3 | |||
| 2a3b269b9c | |||
| 7f3d3b953d | |||
| 0184f5e382 | |||
| 916e4f49a6 | |||
| 8fe7458969 | |||
| be25283da5 | |||
| 1864c08c95 | |||
| bead8aea0a | |||
| dd802e2ec9 | |||
| 8dbd1a3c34 | |||
| ce7238c780 | |||
| 552ebdbede | |||
| ebc5c4d84f | |||
| 8634a9e133 | |||
| 0ce79ed79e | |||
| 5f492ee1d7 | |||
| 9071a4de8b | |||
| 3040a803b2 | |||
| 70a9e855cf | |||
| 51dcc6896e | |||
| fd766d8ff8 | |||
| aa64e9ef24 | |||
| ba2b74fd5a | |||
| 1ae5d9e25e | |||
| ff98ba47c4 | |||
| 599b23ef52 | |||
| 3a4062ac04 | |||
| a3e1047f51 | |||
| 8dbee06d1d | |||
| d522113cb9 | |||
| 7bfd786c01 | |||
| 5a5f4672cd | |||
| 2646ad4b70 | |||
| b120a7ca85 | |||
| 2a0254b684 | |||
| e3e6e7662d | |||
| 868f825e26 | |||
| f231dc81f1 | |||
| a758eef354 | |||
| 9c9c41fb57 | |||
| 1a1708f16f | |||
| efe1b7e399 | |||
| 6122fef927 | |||
|
|
8597bb97ab | ||
| 7d4c9a57c6 | |||
| 3efc10e57d | |||
| 065ab83083 | |||
| 4883b750bd | |||
| ee5cbd08dd | |||
| 61bd7ee947 | |||
| abfd8484ee | |||
| a63f578c99 | |||
| 01e07d559c | |||
| 4b06175b42 | |||
| eb9876aff6 | |||
| 8d31c552f5 | |||
| 68f4d54dd1 | |||
| 2042d58b72 | |||
| 2c8c90e6e4 | |||
| 208dcb7dde | |||
| e2f82a6383 | |||
| d704816de9 | |||
| 74ec4eb22a | |||
| 0a5f9b55f5 | |||
| 900de39e2f | |||
| 1e466d07df | |||
| 13807c5e8f | |||
| d8d6d6d421 | |||
| a242ddd39c | |||
| a2c5fe1f5e | |||
| 2c52ef9ff0 | |||
| ee24b910a1 | |||
| 4b1d4c18af | |||
| fd5fb5c055 | |||
| acb91695ac | |||
| 18d64c352c | |||
| 124cb6a4c3 | |||
| bcf2df64c8 | |||
| c30851d6e9 | |||
| 9d93760e6f | |||
| aad67b9d99 | |||
| e1d406023d | |||
| db6bb90af8 | |||
| 1266c8f04e | |||
| 2b7823788c | |||
| 86eacdd3e5 | |||
| 4fa074f893 | |||
| a260a1bc1b | |||
| 8912d2b9bc | |||
| b4015ded86 | |||
| 0f54d63a46 | |||
| 6c656182f1 | |||
| be4187de3c | |||
| 0b22a1b8a4 | |||
| f18f1937ae | |||
| 4b78ec9134 | |||
| 6c0c26b3aa | |||
| fb1744306d | |||
| 394c7ecd7b | |||
| 3276f54e86 | |||
| 4c806b8ae9 | |||
| 832866cbfa | |||
| 9fc393bb6a | |||
| d81d9d58e1 | |||
| d54dcc8d8f | |||
| a5fae4a289 | |||
| a355926cf0 | |||
| d7a4420205 | |||
| 0b55ce3d02 | |||
| 0ce574800e | |||
| a7e09e55df | |||
| 1622b3e7fc | |||
| 3424cac761 | |||
| f98af9aeef | |||
| b4a20d7c3a | |||
| 8c14b75e44 | |||
| e497e1b88b | |||
| 07411beb49 | |||
| e8bab9928d | |||
| 544d5a3d69 | |||
| 976cdd5a4d | |||
| 312f2cb368 | |||
| 45ac6e95e9 | |||
| e6bb6e735d | |||
| cfbfcdbe8c | |||
| c31bfd6b4d | |||
| f015e5f71c | |||
| 534c5dd261 | |||
| caf0e9545a | |||
| d20fa359d9 | |||
| 9be15fdad2 | |||
| f2f024b82d | |||
| 932d273ec7 | |||
| 13e365002c | |||
| a38072762f | |||
| adf1ff29a7 | |||
| 1ec8d7a625 | |||
| f78f4f5822 | |||
| 67a57cb3e5 | |||
| 85896f8546 | |||
| 5e728773c3 | |||
| 0a06cf564b | |||
| db26b2ae37 | |||
| f7d00dec25 | |||
| 2053ec82b7 | |||
| f2434a17c2 | |||
| 1f7045fcfe | |||
| 0c4a1efa27 | |||
| 530958496b | |||
| df378a2933 | |||
| 2a0fe5a137 | |||
| cbe9af5d04 | |||
| b2283efd46 | |||
| 7f18deaf69 | |||
| b953fd4b2f | |||
| 080811fe9d | |||
| e7647f1d99 | |||
| aad2c276aa | |||
| ce5577f14e | |||
| e23392fccd | |||
| dfbeafa2b2 | |||
| 7d4281a5c1 | |||
| dfea0be2d9 | |||
| df91da8c34 | |||
| 30c21155af | |||
| a43016ebee | |||
| 801bb4ba3c | |||
| a9d740e95a | |||
| 08eaf312f2 | |||
| 0b57bbc6e3 | |||
| 6558a6ab77 | |||
| 0d196af473 | |||
| d35becb663 | |||
| 5421eab09a | |||
| 1c7de2f7c9 | |||
| c7692995f4 | |||
| 0af185afd8 | |||
| 470b3d2512 | |||
| 1bf6747b3a | |||
| 59bf51dfde | |||
| f5dcaf831b | |||
| feb39f404a | |||
| 11e897c10a | |||
| 1da216bab5 | |||
| d8c19eb4b4 | |||
| 0e176cb2a9 | |||
| 3a249c5d88 | |||
| df32aa62d0 | |||
| b72d9936a2 | |||
| 5ebb57deff | |||
| 5b82a72647 | |||
| a5c7205481 | |||
| fd1b467a60 | |||
| 933cd1e3c7 | |||
| 5553ee79a9 | |||
| bb6129a77e | |||
| b8f7c16d1c | |||
| 3f4f3e1105 | |||
| a34e619333 | |||
| 46a3465e78 | |||
| 1d788aeff2 | |||
| 9a500dd3d6 | |||
| 0605bc4ceb | |||
| 882161b21e | |||
| 5e8ff50c98 | |||
| cdb0688ec1 | |||
| ebb5e94416 | |||
| 89049d0b1f | |||
| 6d16772d07 | |||
| e37f9e2b0f | |||
| 9767238c76 | |||
| a5a0fd9b6f | |||
| be69070f61 | |||
| 53f6dcec8d | |||
| 87c4521de3 | |||
| 461d6d2f34 | |||
| ef2ffa61c3 | |||
| c0b23ad450 | |||
| f12ba9f8b0 | |||
| a211e9ebee | |||
| 5dbbb27c43 | |||
| 69bb2128db | |||
| c775ee4d6f | |||
| de7cae6208 | |||
| de4ac8cbd6 | |||
| e1dcad50d0 | |||
| 0120be66fb | |||
| 6cb079a44e | |||
| a5449067a7 | |||
| 1009736d81 | |||
| a94765e8ae | |||
| 9630b23ce2 | |||
| ed158ee87f | |||
| 480dd95d9b | |||
| f7b18098b1 | |||
| c580254dde | |||
| 7e6c395ff8 | |||
| 6978677cb5 | |||
| f5b4580dae | |||
| 035becd018 | |||
| a7fb69ab92 | |||
| 733eb93f23 | |||
| b60e821eaa | |||
| f43d549294 | |||
| ef2631b699 | |||
| 9d2de00b0c | |||
| 2627552a0f | |||
| 03c7256767 | |||
| a46a2ee794 | |||
| 94fa0de4fc | |||
| 054d70d23b | |||
| 91a5bdb344 | |||
| f148a71c6c | |||
| 243ed2331a | |||
| 9fae434553 | |||
| 898534ee52 | |||
| bf28263cc5 | |||
| 84623ea9d0 | |||
| 5753f0c312 | |||
| b57a17dd52 | |||
| 115e9beb59 | |||
| fd84af45f0 | |||
| 833d58a875 | |||
|
|
5789b4a77a | ||
| ef5e98e06d | |||
| a6549c1908 | |||
| 180fa4c992 | |||
| 4cfad119ce | |||
| a2e02bb136 | |||
| 246aa8e7d1 | |||
| f28817c3bf | |||
| bff0395872 | |||
| d18a95f8ed | |||
| 1a99a7eb73 | |||
| 4b5a948918 | |||
| 7ef24b88e4 | |||
| c28618b95c | |||
| 20c5446743 | |||
| 38220140ec | |||
| f5987a0094 | |||
| 60b2f9f6cc | |||
| b60698b791 | |||
| e57107024e | |||
| 1ffca6c9e0 | |||
| 7d5e3f1845 | |||
| df7c79f34b | |||
| a2195aef43 | |||
| 6e7a7febd4 | |||
| 0b319b8a63 | |||
| 315cf1d0de | |||
| 3e3ce35237 | |||
| 2227f08814 | |||
| f74446b225 | |||
| a5af7890b8 | |||
|
|
d2834624c2 | ||
| 35d19c262c | |||
| c0362b6639 | |||
| 08aabfa657 | |||
| 762fe8b82c | |||
| 53d99d41cf | |||
| 9eb5c74cd6 | |||
| aa083b1b66 | |||
| 58fab3b87e | |||
| f2c6a3cb15 | |||
| b6d742380b | |||
| c083d96b79 | |||
| 1a9b8470bb | |||
| f9581cfb59 | |||
| 3be896d90d | |||
| 4125e39ce0 | |||
| 11a521ff51 | |||
| fb2b3cbe06 | |||
| 776a6ca1e4 | |||
| 83921d1788 | |||
| b6f563f621 | |||
| 5d6f691045 | |||
| 3892167e7d | |||
| 6937ffcfe9 | |||
| 760787858a | |||
| a4b8f8e94b | |||
| df62451fcd | |||
| a9e1579242 | |||
| d5626851de | |||
| 5de45cb247 | |||
| 92cd88e365 | |||
| 5a49611bf6 | |||
| 9fc2a2025c | |||
| 2cc0c85635 | |||
| c075498f71 | |||
|
|
e0197950a6 | ||
| cafc67d107 | |||
| c0a0eeec7f | |||
| fb1d50e9dd | |||
| a359cc9d32 | |||
| 1402111e40 | |||
| 9377adf787 | |||
| 20e99f122f | |||
| 53c098d921 | |||
| d2222f6868 | |||
| dbdcfea019 | |||
| 375a79d27a | |||
| 2aa099f0e2 | |||
| 600e1b9987 | |||
| a4752603e9 | |||
| 5b4bb30e55 | |||
| e1433fedb8 | |||
| f729fc4006 | |||
|
|
03298228e4 | ||
|
|
58294d4467 | ||
|
|
48a61dc292 | ||
|
|
5815a9af09 | ||
|
|
ea66d7e4e0 | ||
| 3e197da8a3 | |||
| 866d4561d3 | |||
| 9a88319153 | |||
| a96839d11a | |||
| a71ae9c2c6 | |||
| d490ef2694 | |||
| b4e37a15a9 | |||
| 9bb570af7f | |||
|
|
4d629fe8f7 | ||
|
|
f5c8d0cb88 | ||
|
|
cb6577b439 | ||
|
|
b60a46b683 | ||
|
|
1a6075a2b1 | ||
| 12ff1fd506 | |||
| 732b0c0e9c | |||
| 64f077c4f6 | |||
| 7c94997023 | |||
| fb0dee4b61 | |||
| bde54c69c5 | |||
| 2151e20bd6 | |||
| 886d16bcc6 | |||
| 5c0f179830 | |||
| 422d359b48 | |||
| 60248ab06b | |||
| 1cb63b464d | |||
| 821b4f0d15 | |||
| 0cf35decc5 | |||
| 26e3a86c78 | |||
| b96c39e0ba | |||
| f842f1e01d | |||
| 71c06d02da | |||
| 604cfd90a3 | |||
| 07253c3fa0 | |||
| eab323a13a | |||
| 8ce2a68cd7 | |||
| 99c6196734 | |||
| dd75a840ce | |||
| e49e3b087f | |||
| 59040d9355 | |||
| 6422741cb7 | |||
| 99beac9b23 | |||
| 58dc277d3d | |||
| 47b326c646 | |||
| 419e7f95cc | |||
| b0af9b8608 | |||
| 4afda7dbfb | |||
| 02a103565c | |||
| 788dd13ebd | |||
| 41665bc6fc | |||
| 9aa07993b2 | |||
| e0a68c077c | |||
| 989f6ee018 | |||
| 3e5a56ebdb | |||
| 3ef4a505d3 | |||
| aadce016e1 | |||
| 1d9a5c4721 | |||
| 11e400abb5 | |||
| a8477b1b05 | |||
| 7a6cbd3a9e | |||
| 3de7b5a0b6 | |||
| 485b9150e5 | |||
| fa0e9f591f | |||
| de175b2380 | |||
| bfbbc294ae | |||
| 9bea3cc264 | |||
| f10f8472ac | |||
| 26ad3e49f7 | |||
| 312656ce54 | |||
| 63aa07dad5 | |||
| d1c32869c1 | |||
| 3566cf0152 | |||
| 0b7e92b6f9 | |||
| f8122f3c8b | |||
| 699404bafe | |||
| d68ce914ba | |||
| cb482fa3ea | |||
| 3c150d3910 | |||
| 8a97fefafa | |||
| 10b1ff8f7a | |||
| 0e0f1b265f | |||
| 5ea9ff5ad8 | |||
|
|
2b36e33b7e | ||
|
|
b64b864194 | ||
|
|
72e7a8dab7 | ||
|
|
46536548ca | ||
|
|
8406c1c4e5 | ||
|
|
bc912162a0 | ||
|
|
4e727bf632 | ||
|
|
5c7af00dfa | ||
|
|
5caf2f79f3 | ||
|
|
a90c044c3e | ||
|
|
99532c9c60 | ||
|
|
ddef901e2f | ||
|
|
1ae5acfe6a | ||
| d108306a29 | |||
| e0fbbe32a6 | |||
|
|
37e11c749f | ||
|
|
02a62c18ac | ||
|
|
0ac0205366 | ||
|
|
a2306eb941 | ||
|
|
38d4d0b48c | ||
| 63b08fa4e8 | |||
| 992af14c7f | |||
| 99f3326609 | |||
| a4b2dfddb4 | |||
| 830d648925 | |||
| e4ab177d6c | |||
| b7dcf7bc69 | |||
| 5ac581b573 | |||
| b900cb95f0 | |||
| 389d3f6310 | |||
| 76deac0a63 | |||
| 87f751185c | |||
| ec056d97e5 | |||
| 872ad1a289 | |||
|
|
617ef21d38 | ||
|
|
5cd9894636 | ||
|
|
bfc32ef4b7 | ||
|
|
cb4d27aefb | ||
|
|
d27c696259 | ||
|
|
a55019c6ef | ||
| 8a81c6bfba | |||
| c59f298ae2 | |||
| 6818b29d02 | |||
|
|
8445fb0928 | ||
|
|
1aa0e77157 | ||
|
|
938246322f | ||
|
|
6c0f4ec1b3 | ||
| 46f7add84c | |||
| 87fa3bb336 | |||
| 9c8282362a | |||
| 74cd3d4fbc | |||
| c41456412c | |||
| f0ae0df341 | |||
| 9d38a37787 | |||
| 7d66b34140 | |||
| 0781e8b28e | |||
| 88087bb4b7 | |||
| 637c57b388 | |||
| 26ab2d9bbd | |||
| 133ef50bb4 | |||
| 3a2694ad36 | |||
| 5804b167db | |||
| 425479c9fc | |||
| a286488979 | |||
| d70adae9ec | |||
| 854707103c | |||
| 972be56eed | |||
| 56c625bfe4 | |||
| 968accd552 | |||
| 3445a72686 | |||
| f68564efe6 | |||
| 4780a81d70 | |||
| b192fc44f5 | |||
| 7b4da07dbf | |||
| 3bcbc62a98 | |||
| 52360c9459 | |||
| 71a1396955 | |||
| b600f64fcc | |||
| 14fbb1499b | |||
| c1efba1e65 | |||
| 29d7245135 | |||
| 363700eb9a | |||
| 7e10a43b40 | |||
| c4e49ea249 | |||
| d4ca58db2c | |||
| d5912c3889 | |||
| cb12aa2d94 | |||
| 5fae560ce9 | |||
| 6b6b54f757 | |||
| b79951c9fe | |||
| c684b1870a | |||
| 5afe819724 | |||
| 651d91ef79 | |||
| 14211c9895 | |||
| 6973f48638 | |||
| 4786953eeb | |||
| a6815dc7cf | |||
| 6f2375804d | |||
| 4ffb609261 | |||
| 1d015c7e1e | |||
| ed932c9921 | |||
| a36d912022 | |||
| 8373751f67 | |||
| 2f7032aca6 | |||
| 6dd41fd96f | |||
| 09a0348b0e | |||
| 051a74b85d | |||
| 8a77900201 | |||
| 1291b90b7f | |||
| 8e130604aa | |||
| 0015c7e4cd | |||
| 9612c69aec | |||
| 6e0e2f0bf6 | |||
| 48820ee2d3 | |||
| 9277e60079 | |||
| c869b6e3b4 | |||
| 0b95ea20b7 | |||
| ceb25e5d18 | |||
| 0c9e89dcc0 | |||
| ebcbf91fbe | |||
| 3e2b369e3e | |||
| d4947a40b9 | |||
| 243d022620 | |||
| 0ee2747215 | |||
| 5fd2a62684 | |||
| 0e0bf9e7a7 | |||
| cb5bcd7097 | |||
| d51fe5db48 | |||
| c36b724e9a | |||
| cdf48181e5 | |||
| a6b7b14d5e | |||
| 2ca58c46b4 | |||
| 25208a8158 | |||
| c46feb4bf2 | |||
| 4d626bff97 | |||
| 042876a287 | |||
| edd71815eb | |||
| 39c360b413 | |||
| 3ce0d3934b | |||
| 60cab85fc4 | |||
| 95809bd2bf | |||
| e5561b8735 | |||
| ed1cd75d56 | |||
| d4dfbb7501 | |||
| b65a442cb0 | |||
| 9c6b7a9f87 | |||
| d84ccf566b | |||
| 0faf22a43f | |||
| e89139284a | |||
| b453c12253 | |||
| 32d8636ae1 | |||
| e4e427b7f6 | |||
| fe760c0023 | |||
| 4591eca1fd | |||
| 9beda65778 | |||
| 0f62151dcf | |||
| 0bc81c8943 | |||
| a3804e31f2 | |||
| ed4a9e1bc3 | |||
| 57c60821ce | |||
| 1e84dc196a | |||
| 3d0e93b4d3 | |||
| 8262fd3104 | |||
| 2b9c3da911 | |||
| aeac1a6068 | |||
| 130fe39c8e | |||
| 5c2bd13c3d | |||
| 140598a28b | |||
| 892fb35d27 | |||
| afd333adef | |||
| 76f2ef4b95 | |||
| ed5f6bc22b | |||
| 3b80c2fcb9 | |||
| b5cadefca9 | |||
|
|
203dc9f295 | ||
|
|
2e18761b48 | ||
|
|
748d335a39 | ||
| 9646a1298d | |||
| 5a8cc1e514 | |||
| 7d4db6b6de | |||
| 756c5dff92 | |||
| 9a0ea08d72 | |||
| a8db596b35 | |||
| 90d7c83261 | |||
| d70316a25a | |||
| eb4adf9520 | |||
| 266fffdb5f | |||
| f65e4d01c3 | |||
| 53d8e535b5 | |||
| 1bdeca9e7d | |||
| 5e9adf3fe6 | |||
| c858f521bf | |||
| bdaadd4ef7 | |||
| b8a1ea3f72 | |||
| eea9539258 | |||
| 3dbb24dd9e | |||
| da4bbf8533 | |||
| df1f22c122 | |||
| f87d830218 | |||
| 3d352fee19 | |||
| 284662d6cd | |||
| 84a8060bc5 | |||
| 1340d1d2e8 | |||
| 1f841649f8 | |||
| 8d5853bba9 | |||
| dd5832b39d | |||
| ad7c04845b | |||
| 6483d645d1 | |||
| 4000dbd0b8 | |||
| 6fa3facfb1 | |||
| ed95cb0a04 | |||
| aca7e36fc7 | |||
| 0bb5c76aad | |||
| 2153e58baf | |||
| ceeb0f7f41 | |||
| a147a396d9 | |||
| 8bc5656461 | |||
| d192a59fdc | |||
| 734d494d96 | |||
| 2863ab6ae1 | |||
| 4f0da10321 | |||
|
|
0c438d4dac | ||
|
|
a0dac209e3 | ||
|
|
37bd4c33f2 | ||
| e8f649327a | |||
| daadcc93d0 | |||
| e65c801a20 | |||
| a076d7d3d0 | |||
| d2d3ccf332 | |||
| e1e34ddf75 | |||
| 33f6ae7e55 | |||
| fe0bd8b200 | |||
| bcb9cf31a3 | |||
| dcb56643d5 | |||
| ef4bb13a7d | |||
| 69af473241 | |||
| 016422cede | |||
| 5e50ef19fe | |||
| 641e752bd5 | |||
| 74537e682c | |||
| 433c8864ea | |||
| e0ca33569b | |||
| 65918bca21 | |||
| dea523460a | |||
| b4a3bb0ede | |||
| dabc6be640 | |||
| 2a42c1e53e | |||
| 18afcb1f44 | |||
| 3372f94855 | |||
| 288318b556 | |||
| 42f2227a9f | |||
|
|
4ae66adb9a | ||
|
|
86d1d426ec | ||
| 5333058741 | |||
| 9a7e59a076 | |||
| 0b0f6ac9f0 | |||
| 74ce07b193 | |||
| f2610361a7 | |||
| acc3390b6b | |||
| 9faa4ef101 | |||
| cd3afe4ad6 | |||
| 4111535a9d | |||
| 09361fae77 | |||
| dc3e84a148 | |||
| 1838178761 | |||
| 63f966e3c1 | |||
| 966606b62d | |||
| 5763b91d39 | |||
| 47f67dcd85 | |||
| 48869d6e4a | |||
| 92f58651b8 | |||
| c0669d7dc8 | |||
| 31f7d17a41 | |||
| 538d595d30 | |||
| dec183b221 | |||
| 92eee2ede8 | |||
| a8208480c1 | |||
| dd0823876a | |||
| 9d878eeb4a | |||
| 11ac02da08 | |||
| 074a75facb | |||
| 7a80d1ca98 | |||
| 9e477a2313 | |||
| 5bd042ef67 | |||
| d7be13f88d | |||
| 476c2f20f0 | |||
| de6b4864ee | |||
| 33682ef48d | |||
| 634d2040b5 | |||
| df4d908f1c | |||
| f0122d557f | |||
| 62c9da2474 | |||
| 0c58bb63b5 | |||
| de46366985 | |||
| 376ab9b32a | |||
| 5eea48c5b0 | |||
| f1f75c1c11 | |||
| c3988dacd2 | |||
| e778ad75b3 | |||
| 317409f6ac | |||
| 3eae92bdc4 | |||
| 8bc0dc202d | |||
| 6b40e6f9e9 | |||
| d5d42b3c09 | |||
| 0bcfe5d25b | |||
| 5e2797bcde | |||
| efd7df068e | |||
| 7c5345f4bc | |||
| 43991e9173 | |||
| 7b26b59988 | |||
| a66cdb52fb | |||
| 3bd4e61f3f | |||
| 59346fa97e | |||
| fd1229ddc0 | |||
| 8ce88ef046 | |||
| 06c29b573f | |||
| 7852d86a3f | |||
| 4beb069627 | |||
| 1321b6a888 | |||
| ed8a6416a0 | |||
| 81d144d716 | |||
| 30ad4219d9 | |||
| 067fb0c0a2 | |||
| 308673f7f6 | |||
| 1bd9cb6c0f | |||
| ede25b6736 | |||
| 2680dcb66f | |||
| be0506bc21 | |||
| f33137a55e | |||
| 65745e0aaf | |||
| c3659d316d | |||
| 4f901c1b9c | |||
| 74f83b5c11 | |||
| 11601703ce | |||
| 6f60e3cab2 | |||
| 72ba080db1 | |||
| dad70761ad | |||
|
|
9c20537f91 | ||
|
|
56584c9e97 | ||
|
|
6a1375726f | ||
|
|
d757332448 | ||
|
|
58e3d48a16 | ||
|
|
b856e2147a | ||
|
|
22a294f9cc | ||
|
|
ea0272c212 | ||
|
|
e20061254b | ||
| 01b2584688 | |||
|
|
7bf3e81233 | ||
|
|
6bd7e12cff | ||
|
|
b5fb3730ac | ||
|
|
a44042615a | ||
|
|
05ce36e158 | ||
|
|
6ccc159487 | ||
|
|
8b985de65d | ||
| ae6a3f9206 | |||
| 327a155907 | |||
| 80ccd1240a | |||
| 9d8f7d9074 | |||
| c7d2e2d866 | |||
| 148c614540 | |||
| 478535b4d1 | |||
| 7a37913b4e | |||
| 05b37aa11d | |||
| 04328d81ff | |||
| a38ff31cca | |||
| d0a259f15d | |||
| f2b39decba | |||
| 251103ffd3 | |||
| 6ab448b10a | |||
| aa1ffa5208 | |||
| 4de20d3aa5 | |||
| 27bc977590 | |||
| 1b703bd431 | |||
| 298c7362b3 | |||
| 9020f87765 | |||
| 53dca32469 | |||
| 9d2ce2a1c2 | |||
| e6e42dcec9 | |||
| 332b738889 | |||
| a576be8031 | |||
| 654e243735 | |||
| 45afe7d391 | |||
| d599b8c52f | |||
| 697d4e652e | |||
| 26ea326ded | |||
| 66a5e06ada | |||
| e8d884a627 | |||
| 81004b5ee6 | |||
| 4ea0d16926 | |||
| ba221c5200 | |||
| effcc2d20b | |||
| 2a01ee7f24 | |||
| 896ebd4ace | |||
| 0a26c72440 | |||
| 4ce514de9b | |||
|
|
c36fc8a08b | ||
|
|
ec555e59e7 | ||
|
|
8f65030161 | ||
|
|
30630a74be | ||
| 6d413c946c | |||
| 533d8e9768 | |||
| d4ea0fe607 | |||
| 2f56488197 | |||
| 3dd609f7db | |||
| 368aa57cb7 | |||
| 18081b3485 | |||
|
|
231672a222 | ||
|
|
b403fbefe1 | ||
|
|
c85b2976ef | ||
|
|
6ae71cc5e9 | ||
|
|
5cbc8e4fbb | ||
| 50eeca2257 | |||
| 61a2db03dc | |||
| fd47044bfb | |||
|
|
79a4a4d16b | ||
|
|
cec7a280c0 | ||
|
|
dcf64bd1f6 | ||
|
|
ce7566cf7a | ||
|
|
78b96c1bc6 | ||
|
|
6a2d865225 | ||
|
|
8f5c5146b3 | ||
|
|
e3349bb864 | ||
|
|
ef592c060f | ||
| d210e96d18 | |||
| 35f4ba545a | |||
| a227084e39 | |||
| ec21ba98b5 | |||
| 69b1dcf08a | |||
| eb46e8f41b | |||
| fa734deaca | |||
| f72a4e9bc8 | |||
| ae2cdf8790 | |||
| dadc02ca99 | |||
| ff4d39233a | |||
| 985091130d | |||
| 724b8f232a | |||
|
|
c1b64e8897 | ||
|
|
c8915dfc89 | ||
|
|
3419db1fc6 | ||
|
|
32ac89b97f | ||
| 79fae204c2 | |||
| ed7f6e3e97 | |||
| 1d5b528cd0 | |||
| e3623b05fd | |||
| ebd947c544 | |||
| e044ce918e | |||
| 7de0593e4b | |||
| 58e6c76349 | |||
| c5e225c778 | |||
| edf429c932 | |||
| cd37d513e8 | |||
| ad4df5e05d | |||
| 5920c964d2 | |||
| cc101ad1d3 | |||
| 126f05e92c | |||
| dba1cc22bc | |||
| 847b5b3e0a | |||
| c4dc42c2a4 | |||
| be95827927 | |||
| bdc221ba81 | |||
| 8110bc2976 | |||
| d469ccd59d | |||
| d05d32edbf | |||
| 68c8691916 | |||
| 4fa8d8f683 | |||
| 8613253395 | |||
| 0cc5fe92e5 | |||
| 196b681586 | |||
| 87809ef903 | |||
| 09c2b9005a | |||
| cfa5187988 | |||
| 27fbecf970 | |||
| 839489d20f | |||
| d1e152a917 | |||
| f44f5b4338 | |||
| fa1f06ce31 | |||
| cff653d164 | |||
| 67ac951289 | |||
| 5b1a296640 | |||
| 76b0a239e3 | |||
| 1473874563 | |||
| 4b27ceec6d | |||
| 5314f343b6 | |||
| 14684040a5 | |||
| c70d35cd50 | |||
| 1e07be863a | |||
| ecc01e4314 | |||
| 23fa7d8654 | |||
| 01295487d8 | |||
| df18435dfc | |||
| 338736d257 | |||
| ef1aeb2cfa | |||
| 8db4ef2594 | |||
| b777fbc6d5 | |||
| b9e9409a59 | |||
| f4cbd654e2 | |||
| 9631f4c223 | |||
| bab4c696d8 | |||
| 39a639ac10 | |||
| 85c15e9f3f | |||
| c7c8d858f4 | |||
| 7c92f713cd | |||
| 5df174f24e | |||
| 272511f058 | |||
| f1e891b6bf | |||
| f6137a7bc0 | |||
| b93851ba93 | |||
| b042e783e5 | |||
| ea81c34f31 | |||
| 97d69d25ee | |||
| 0eec726335 | |||
| 76ec5d5f16 | |||
| 11901e77de | |||
| 979888eede | |||
| bbc851db78 | |||
| 9cba2d609c | |||
| bad6f3c761 | |||
| ac1523d946 | |||
| cf72d526ee | |||
| 419418781f | |||
| f842b22330 | |||
| 215b104174 | |||
| 0a09affbc4 | |||
| 1e54fbdc43 | |||
| 10b061aa96 | |||
| ab0aa74590 | |||
| f07d87e97e | |||
| ca0c1445ba | |||
| b8d15e7d84 | |||
| f20ef93c56 | |||
| ba13d37694 | |||
| 528cd7d205 | |||
| 60fdba40ae | |||
| c50158e3be | |||
| 81bcf20419 | |||
| 321bfa290c | |||
| 3b23b230ed | |||
| 11b1652617 | |||
| d634538223 | |||
| cd409677b0 | |||
| 0b2f9df3ea | |||
| 3298c5442c | |||
| 99b716db87 | |||
| a78f0caec9 | |||
| dc12cbe045 | |||
| 577a7c3190 | |||
| 7c68efe743 | |||
| 261d304961 | |||
| 0daa0b9c35 | |||
| 114a6b081f | |||
| fdc8b68d9a | |||
| 5df94bfc66 | |||
|
|
7b2c88be78 | ||
|
|
6f06022aa5 | ||
| 599e504f1a | |||
| c03ac6d05a | |||
| a95f7fa35e | |||
| 018bebc264 | |||
| ee5964a984 | |||
| 0f2b4754fd | |||
| 91c38d70a8 | |||
| 0663895b3f | |||
| bdfcb65b7e | |||
| 7d8f86eaad | |||
| 1e02ac9023 | |||
| e0c5a3ebca | |||
| 940c494d8e | |||
|
|
8032825765 | ||
|
|
2189436619 | ||
| 61f055e258 | |||
| 9662ff4138 | |||
| 1f36743459 | |||
| 9ca29d5cf8 | |||
| 9d65f2ae2c | |||
|
|
61c799e7e4 | ||
| 33a46f41ce | |||
| a1f33444b5 | |||
| 74222706bf | |||
| 5064170b31 | |||
| 3ddd1721f4 | |||
| 71430b3552 | |||
| 19c18627be | |||
| d6093681cc | |||
| 08a3512bf1 | |||
| 9a5759c45e | |||
|
|
a4d20edd8b | ||
|
|
bd9788961b | ||
|
|
67c692b648 | ||
|
|
a83627890e | ||
|
|
53aebe5846 | ||
|
|
6b5e5aafa9 | ||
|
|
6dc2f8045d | ||
|
|
040f205538 | ||
|
|
210e705653 | ||
|
|
f5484cf5c3 | ||
|
|
57f09c1967 | ||
|
|
86b4b016b2 | ||
|
|
ed829aace0 | ||
|
|
d9ec42614c | ||
|
|
19e4e12126 | ||
|
|
a8523c4b4e | ||
|
|
63c78f50de | ||
|
|
cae91fdcc0 | ||
|
|
fbbdf0740a | ||
|
|
98b51cfa6d | ||
|
|
5cec4b02de | ||
|
|
ebea6f1e81 | ||
|
|
2feaafb104 | ||
|
|
3c2b7c163f | ||
|
|
a331ec5f14 | ||
|
|
ceaf273219 | ||
|
|
3805eb0ceb | ||
|
|
37b49e1dd3 | ||
|
|
b600bb77d4 | ||
|
|
20e3f4d4f0 | ||
|
|
5a4068b497 | ||
|
|
83770803e5 |
20
.gitea/workflows/ci.yaml
Normal file
20
.gitea/workflows/ci.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
name: CI
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
build:all:
|
||||
runs-on: native
|
||||
steps:
|
||||
- uses: https://gitea.com/ScMi1/checkout@v1.4
|
||||
- run: nix build -L --no-link --print-out-paths .#bsc.ci.all
|
||||
build:cross:
|
||||
runs-on: native
|
||||
steps:
|
||||
- uses: https://gitea.com/ScMi1/checkout@v1.4
|
||||
- run: nix build -L --no-link --print-out-paths .#bsc.ci.cross
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,3 +1,3 @@
|
||||
*.swp
|
||||
**.swp
|
||||
/result
|
||||
/misc
|
||||
|
||||
6
.gitlab-ci.yml
Normal file
6
.gitlab-ci.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
build:bsc-ci.all:
|
||||
stage: build
|
||||
tags:
|
||||
- nix
|
||||
script:
|
||||
- nix build -L --no-link --print-out-paths .#bsc-ci.all
|
||||
21
COPYING
Normal file
21
COPYING
Normal file
@@ -0,0 +1,21 @@
|
||||
Copyright (c) 2020-2025 Barcelona Supercomputing Center
|
||||
Copyright (c) 2003-2020 Eelco Dolstra and the Nixpkgs/NixOS contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
9
README.md
Normal file
9
README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Jungle
|
||||
|
||||
This repository provides two components that can be used independently:
|
||||
|
||||
- A Nix overlay with packages used at BSC (formerly known as bscpkgs). Access
|
||||
them directly with `nix shell .#<pkgname>`.
|
||||
|
||||
- NixOS configurations for jungle machines. Use `nixos-rebuild switch --flake .`
|
||||
to upgrade the current machine.
|
||||
19
default.nix
Normal file
19
default.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
let
|
||||
bscOverlay = import ./overlay.nix;
|
||||
|
||||
# read flake.lock and determine revision from there
|
||||
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
||||
inherit (lock.nodes.nixpkgs.locked) rev narHash;
|
||||
fetchedNixpkgs = builtins.fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz";
|
||||
sha256 = narHash;
|
||||
};
|
||||
in
|
||||
{ overlays ? [ ]
|
||||
, nixpkgs ? fetchedNixpkgs
|
||||
, ...
|
||||
}@attrs:
|
||||
import nixpkgs (
|
||||
(builtins.removeAttrs attrs [ "overlays" "nixpkgs" ]) //
|
||||
{ overlays = [ bscOverlay ] ++ overlays; }
|
||||
)
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
doc/bsc-ssf.pdf
BIN
doc/bsc-ssf.pdf
Binary file not shown.
30
doc/maintainers.md
Normal file
30
doc/maintainers.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Maintainers
|
||||
|
||||
## Role of a maintainer
|
||||
The responsibilities of maintainers are quite lax, and similar in spirit to
|
||||
[nixpkgs' maintainers][1]:
|
||||
|
||||
The main responsibility of a maintainer is to keep the packages they
|
||||
maintain in a functioning state, and keep up with updates. In order to do
|
||||
that, they are empowered to make decisions over the packages they maintain.
|
||||
|
||||
That being said, the maintainer is not alone in proposing changes to the
|
||||
packages. Anybody (both bots and humans) can send PRs to bump or tweak the
|
||||
package.
|
||||
|
||||
In practice, this means that when updating or proposing changes to a package,
|
||||
we will notify maintainers by mentioning them in Gitea so they can test changes
|
||||
and give feedback.
|
||||
|
||||
Since we do bi-yearly release cycles, there is no expectation from maintainers
|
||||
to update packages at each upstream release. Nevertheless, on each release cycle
|
||||
we may request help from maintainers when updating or testing their packages.
|
||||
|
||||
## Becoming a maintainer
|
||||
|
||||
|
||||
You'll have to add yourself in the `maintainers.nix` list; your username should
|
||||
match your `bsc.es` email. Then you can add yourself to the `meta.maintainers`
|
||||
of any package you are interested in maintaining.
|
||||
|
||||
[1]: [https://github.com/NixOS/nixpkgs/tree/nixos-25.05/maintainers]
|
||||
21
flake.lock
generated
21
flake.lock
generated
@@ -23,26 +23,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"bscpkgs": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749650500,
|
||||
"narHash": "sha256-2MHfVPV6RA7qPSCtXh4+KK0F0UjN+J4z8//+n6NK7Xs=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "9d1944c658929b6f98b3f3803fead4d1b91c4405",
|
||||
"revCount": 961,
|
||||
"type": "git",
|
||||
"url": "https://git.sr.ht/~rodarima/bscpkgs"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.sr.ht/~rodarima/bscpkgs"
|
||||
}
|
||||
},
|
||||
"darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -105,7 +85,6 @@
|
||||
"root": {
|
||||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"bscpkgs": "bscpkgs",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
|
||||
29
flake.nix
29
flake.nix
@@ -3,17 +3,22 @@
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
agenix.url = "github:ryantm/agenix";
|
||||
agenix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
bscpkgs.url = "git+https://git.sr.ht/~rodarima/bscpkgs";
|
||||
bscpkgs.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, agenix, bscpkgs, ... }:
|
||||
outputs = { self, nixpkgs, agenix, ... }:
|
||||
let
|
||||
mkConf = name: nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit nixpkgs bscpkgs agenix; theFlake = self; };
|
||||
specialArgs = { inherit nixpkgs agenix; theFlake = self; };
|
||||
modules = [ "${self.outPath}/m/${name}/configuration.nix" ];
|
||||
};
|
||||
# For now we only support x86
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ self.overlays.default ];
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
@@ -31,9 +36,19 @@ in
|
||||
weasel = mkConf "weasel";
|
||||
};
|
||||
|
||||
packages.x86_64-linux = self.nixosConfigurations.hut.pkgs // {
|
||||
bscpkgs = bscpkgs.packages.x86_64-linux;
|
||||
nixpkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
bscOverlay = import ./overlay.nix;
|
||||
overlays.default = self.bscOverlay;
|
||||
|
||||
# full nixpkgs with our overlay applied
|
||||
legacyPackages.${system} = pkgs;
|
||||
|
||||
hydraJobs = self.legacyPackages.${system}.bsc.hydraJobs;
|
||||
|
||||
# propagate nixpkgs lib, so we can do bscpkgs.lib
|
||||
lib = nixpkgs.lib // {
|
||||
maintainers = nixpkgs.lib.maintainers // {
|
||||
bsc = import ./pkgs/maintainers.nix;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
./base/hw.nix
|
||||
./base/net.nix
|
||||
./base/nix.nix
|
||||
./base/sys-devices.nix
|
||||
./base/ntp.nix
|
||||
./base/rev.nix
|
||||
./base/ssh.nix
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
{ pkgs, nixpkgs, bscpkgs, theFlake, ... }:
|
||||
{ pkgs, nixpkgs, theFlake, ... }:
|
||||
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
bscpkgs.bscOverlay
|
||||
(import ../../../pkgs/overlay.nix)
|
||||
(import ../../../overlay.nix)
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
9
m/common/base/sys-devices.nix
Normal file
9
m/common/base/sys-devices.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
nix.settings.system-features = [ "sys-devices" ];
|
||||
|
||||
programs.nix-required-mounts.enable = true;
|
||||
programs.nix-required-mounts.allowedPatterns.sys-devices.paths = [
|
||||
"/sys/devices/system/cpu"
|
||||
"/sys/devices/system/node"
|
||||
];
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -23,11 +23,11 @@
|
||||
|
||||
peers = [
|
||||
# List of allowed peers.
|
||||
{
|
||||
{
|
||||
name = "apex";
|
||||
publicKey = "VwhcN8vSOzdJEotQTpmPHBC52x3Hbv1lkFIyKubrnUA=";
|
||||
# List of IPs assigned to this peer within the tunnel subnet. Used to configure routing.
|
||||
allowedIPs = [ "10.106.0.30/32" ];
|
||||
allowedIPs = [ "10.106.0.30/32" "10.0.40.7/32" ];
|
||||
}
|
||||
{
|
||||
name = "raccoon";
|
||||
@@ -40,6 +40,7 @@
|
||||
|
||||
networking.hosts = {
|
||||
"10.106.0.30" = [ "apex" ];
|
||||
"10.0.40.7" = [ "hut" ];
|
||||
"10.106.0.236" = [ "raccoon" ];
|
||||
"10.0.44.4" = [ "tent" ];
|
||||
};
|
||||
|
||||
156
overlay.nix
Normal file
156
overlay.nix
Normal file
@@ -0,0 +1,156 @@
|
||||
final: /* Future last stage */
|
||||
prev: /* Previous stage */
|
||||
|
||||
with final.lib;
|
||||
|
||||
let
|
||||
callPackage = final.callPackage;
|
||||
|
||||
bscPkgs = {
|
||||
amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { };
|
||||
bench6 = callPackage ./pkgs/bench6/default.nix { };
|
||||
bigotes = callPackage ./pkgs/bigotes/default.nix { };
|
||||
clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { };
|
||||
clangOmpss2Nanos6 = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nanos6; };
|
||||
clangOmpss2Nodes = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmp; };
|
||||
clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmpv; };
|
||||
clangOmpss2Unwrapped = callPackage ./pkgs/llvm-ompss2/clang.nix { };
|
||||
cudainfo = prev.callPackage ./pkgs/cudainfo/default.nix { };
|
||||
#extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated
|
||||
gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
|
||||
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { };
|
||||
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
|
||||
# FIXME: Extend this to all linuxPackages variants. Open problem, see:
|
||||
# https://discourse.nixos.org/t/whats-the-right-way-to-make-a-custom-kernel-module-available/4636
|
||||
linuxPackages = prev.linuxPackages.extend (_final: _prev: {
|
||||
amd-uprof-driver = _prev.callPackage ./pkgs/amd-uprof/driver.nix { };
|
||||
});
|
||||
linuxPackages_latest = prev.linuxPackages_latest.extend(_final: _prev: {
|
||||
amd-uprof-driver = _prev.callPackage ./pkgs/amd-uprof/driver.nix { };
|
||||
});
|
||||
lmbench = callPackage ./pkgs/lmbench/default.nix { };
|
||||
mcxx = callPackage ./pkgs/mcxx/default.nix { };
|
||||
meteocat-exporter = prev.callPackage ./pkgs/meteocat-exporter/default.nix { };
|
||||
mpi = final.mpich; # Set MPICH as default
|
||||
mpich = callPackage ./pkgs/mpich/default.nix { mpich = prev.mpich; };
|
||||
nanos6 = callPackage ./pkgs/nanos6/default.nix { };
|
||||
nanos6Debug = final.nanos6.override { enableDebug = true; };
|
||||
nixtools = callPackage ./pkgs/nixtools/default.nix { };
|
||||
# Broken because of pkgsStatic.libcap
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/268791
|
||||
#nix-wrap = callPackage ./pkgs/nix-wrap/default.nix { };
|
||||
nodes = callPackage ./pkgs/nodes/default.nix { };
|
||||
nosv = callPackage ./pkgs/nosv/default.nix { };
|
||||
openmp = callPackage ./pkgs/llvm-ompss2/openmp.nix { monorepoSrc = final.clangOmpss2Unwrapped.src; version = final.clangOmpss2Unwrapped.version; };
|
||||
openmpv = final.openmp.override { enableNosv = true; enableOvni = true; };
|
||||
osumb = callPackage ./pkgs/osu/default.nix { };
|
||||
ovni = callPackage ./pkgs/ovni/default.nix { };
|
||||
ovniGit = final.ovni.override { useGit = true; };
|
||||
paraverKernel = callPackage ./pkgs/paraver/kernel.nix { };
|
||||
prometheus-slurm-exporter = prev.callPackage ./pkgs/slurm-exporter/default.nix { };
|
||||
#pscom = callPackage ./pkgs/parastation/pscom.nix { }; # Unmaintaned
|
||||
#psmpi = callPackage ./pkgs/parastation/psmpi.nix { }; # Unmaintaned
|
||||
sonar = callPackage ./pkgs/sonar/default.nix { };
|
||||
stdenvClangOmpss2 = final.stdenv.override { cc = final.clangOmpss2; allowedRequisites = null; };
|
||||
stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.clangOmpss2Nanos6; allowedRequisites = null; };
|
||||
stdenvClangOmpss2Nodes = final.stdenv.override { cc = final.clangOmpss2Nodes; allowedRequisites = null; };
|
||||
stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; };
|
||||
tagaspi = callPackage ./pkgs/tagaspi/default.nix { };
|
||||
tampi = callPackage ./pkgs/tampi/default.nix { };
|
||||
upc-qaire-exporter = prev.callPackage ./pkgs/upc-qaire-exporter/default.nix { };
|
||||
wxparaver = callPackage ./pkgs/paraver/default.nix { };
|
||||
};
|
||||
|
||||
tests = rec {
|
||||
hwloc = callPackage ./test/bugs/hwloc.nix { };
|
||||
#sigsegv = callPackage ./test/reproducers/sigsegv.nix { };
|
||||
hello-c = callPackage ./test/compilers/hello-c.nix { };
|
||||
hello-cpp = callPackage ./test/compilers/hello-cpp.nix { };
|
||||
lto = callPackage ./test/compilers/lto.nix { };
|
||||
asan = callPackage ./test/compilers/asan.nix { };
|
||||
intel2023-icx-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv; };
|
||||
intel2023-icc-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv-icc; };
|
||||
intel2023-icx-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv; };
|
||||
intel2023-icc-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv-icc; };
|
||||
intel2023-ifort = callPackage ./test/compilers/hello-f.nix {
|
||||
stdenv = final.intelPackages_2023.stdenv-ifort;
|
||||
};
|
||||
clangOmpss2-lto = lto.override { stdenv = final.stdenvClangOmpss2Nanos6; };
|
||||
clangOmpss2-asan = asan.override { stdenv = final.stdenvClangOmpss2Nanos6; };
|
||||
clangOmpss2-task = callPackage ./test/compilers/ompss2.nix {
|
||||
stdenv = final.stdenvClangOmpss2Nanos6;
|
||||
};
|
||||
clangNodes-task = callPackage ./test/compilers/ompss2.nix {
|
||||
stdenv = final.stdenvClangOmpss2Nodes;
|
||||
};
|
||||
clangNosvOpenmp-task = callPackage ./test/compilers/clang-openmp.nix {
|
||||
stdenv = final.stdenvClangOmpss2Nodes;
|
||||
};
|
||||
clangNosvOmpv-nosv = callPackage ./test/compilers/clang-openmp-nosv.nix {
|
||||
stdenv = final.stdenvClangOmpss2NodesOmpv;
|
||||
};
|
||||
clangNosvOmpv-ld = callPackage ./test/compilers/clang-openmp-ld.nix {
|
||||
stdenv = final.stdenvClangOmpss2NodesOmpv;
|
||||
};
|
||||
};
|
||||
|
||||
# For now, only build toplevel packages in CI/Hydra
|
||||
pkgsTopLevel = filterAttrs (_: isDerivation) bscPkgs;
|
||||
|
||||
# Native build in that platform doesn't imply cross build works
|
||||
canCrossCompile = platform: pkg:
|
||||
(isDerivation pkg) &&
|
||||
# Must be defined explicitly
|
||||
(pkg.meta.cross or false) &&
|
||||
(meta.availableOn platform pkg);
|
||||
|
||||
# For now only RISC-V
|
||||
crossSet = { riscv64 = final.pkgsCross.riscv64.bsc.pkgsTopLevel; };
|
||||
|
||||
buildList = name: paths:
|
||||
final.runCommandLocal name { } ''
|
||||
printf '%s\n' ${toString paths} | tee $out
|
||||
'';
|
||||
|
||||
buildList' = name: paths:
|
||||
final.runCommandLocal name { } ''
|
||||
deps="${toString paths}"
|
||||
cat $deps
|
||||
printf '%s\n' $deps >$out
|
||||
'';
|
||||
|
||||
pkgsList = buildList "ci-pkgs" (builtins.attrValues pkgsTopLevel);
|
||||
testsList = buildList "ci-tests" (collect isDerivation tests);
|
||||
allList = buildList' "ci-all" [ pkgsList testsList ];
|
||||
# For now only RISC-V
|
||||
crossList = buildList "ci-cross"
|
||||
(filter
|
||||
(canCrossCompile final.pkgsCross.riscv64.stdenv.hostPlatform)
|
||||
(builtins.attrValues crossSet.riscv64));
|
||||
|
||||
in bscPkgs // {
|
||||
|
||||
lib = prev.lib // {
|
||||
maintainers = prev.lib.maintainers // {
|
||||
bsc = import ./pkgs/maintainers.nix;
|
||||
};
|
||||
};
|
||||
|
||||
# Prevent accidental usage of bsc-ci attribute
|
||||
bsc-ci = throw "the bsc-ci attribute is deprecated, use bsc.ci";
|
||||
|
||||
# Internal for our CI tests
|
||||
bsc = {
|
||||
# CI targets for nix build
|
||||
ci = { pkgs = pkgsList; tests = testsList; all = allList; cross = crossList; };
|
||||
|
||||
# Direct access to package sets
|
||||
tests = tests;
|
||||
pkgs = bscPkgs;
|
||||
pkgsTopLevel = pkgsTopLevel;
|
||||
cross = crossSet;
|
||||
|
||||
# Hydra uses attribute sets of pkgs
|
||||
hydraJobs = { tests = tests; pkgs = pkgsTopLevel; cross = crossSet; };
|
||||
};
|
||||
}
|
||||
@@ -86,4 +86,13 @@ in
|
||||
patchelf --add-needed libnuma.so $out/bin/AMDuProfPcm
|
||||
set +x
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Performance analysis tool-suite for x86 based applications";
|
||||
homepage = "https://www.amd.com/es/developer/uprof.html";
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = with lib.maintainers.bsc; [ rarias varcila ];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -29,5 +29,7 @@ in stdenv.mkDerivation {
|
||||
description = "AMD Power Profiler Driver";
|
||||
homepage = "https://www.amd.com/es/developer/uprof.html";
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = with lib.maintainers.bsc; [ rarias varcila ];
|
||||
};
|
||||
}
|
||||
|
||||
70
pkgs/bench6/default.nix
Normal file
70
pkgs/bench6/default.nix
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, bigotes
|
||||
, cmake
|
||||
, clangOmpss2
|
||||
, openmp
|
||||
, openmpv
|
||||
, nanos6
|
||||
, nodes
|
||||
, nosv
|
||||
, mpi
|
||||
, tampi
|
||||
, openblas
|
||||
, ovni
|
||||
, gitBranch ? "master"
|
||||
, gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git"
|
||||
, gitCommit ? "bf29a53113737c3aa74d2fe3d55f59868faea7b4"
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bench6";
|
||||
version = "${src.shortRev}";
|
||||
|
||||
src = builtins.fetchGit {
|
||||
url = gitURL;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
clangOmpss2
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
bigotes
|
||||
openmp
|
||||
openmpv
|
||||
nanos6
|
||||
nodes
|
||||
nosv
|
||||
mpi
|
||||
tampi
|
||||
openblas
|
||||
openblas.dev
|
||||
ovni
|
||||
];
|
||||
|
||||
env = {
|
||||
NANOS6_HOME = nanos6;
|
||||
NODES_HOME = nodes;
|
||||
NOSV_HOME = nosv;
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=clang"
|
||||
"-DCMAKE_CXX_COMPILER=clang++"
|
||||
];
|
||||
hardeningDisable = [ "all" ];
|
||||
dontStrip = true;
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.pm.bsc.es/rarias/bench6";
|
||||
description = "Set of micro-benchmarks for OmpSs-2 and several mini-apps";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
26
pkgs/bigotes/default.nix
Normal file
26
pkgs/bigotes/default.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "bigotes";
|
||||
version = "9dce13";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rodarima";
|
||||
repo = "bigotes";
|
||||
rev = "9dce13446a8da30bea552d569d260d54e0188518";
|
||||
sha256 = "sha256-ktxM3pXiL8YXSK+/IKWYadijhYXqGoLY6adLk36iigE=";
|
||||
};
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/rodarima/bigotes";
|
||||
description = "Versatile benchmark tool";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
13
pkgs/extrae/PTR.patch
Normal file
13
pkgs/extrae/PTR.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/src/merger/common/bfd_manager.c b/src/merger/common/bfd_manager.c
|
||||
index 5f9dacf9..5231e3eb 100644
|
||||
--- a/src/merger/common/bfd_manager.c
|
||||
+++ b/src/merger/common/bfd_manager.c
|
||||
@@ -225,7 +225,7 @@ asymbol **BFDmanager_getDefaultSymbols (void)
|
||||
*
|
||||
* @return No return value.
|
||||
*/
|
||||
-static void BFDmanager_findAddressInSection (bfd * abfd, asection * section, PTR data)
|
||||
+static void BFDmanager_findAddressInSection (bfd * abfd, asection * section, void * data)
|
||||
{
|
||||
#if HAVE_BFD_GET_SECTION_SIZE || HAVE_BFD_SECTION_SIZE || HAVE_BFD_GET_SECTION_SIZE_BEFORE_RELOC
|
||||
bfd_size_type size;
|
||||
123
pkgs/extrae/default.nix
Normal file
123
pkgs/extrae/default.nix
Normal file
@@ -0,0 +1,123 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, boost
|
||||
, libdwarf
|
||||
, libelf
|
||||
, libxml2
|
||||
, libunwind
|
||||
, papi
|
||||
, binutils-unwrapped
|
||||
, libiberty
|
||||
, gfortran
|
||||
, xml2
|
||||
, which
|
||||
, libbfd
|
||||
, mpi ? null
|
||||
, cuda ? null
|
||||
, llvmPackages
|
||||
, autoreconfHook
|
||||
#, python3Packages
|
||||
, installShellFiles
|
||||
, symlinkJoin
|
||||
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
|
||||
}:
|
||||
|
||||
let
|
||||
libdwarfBundle = symlinkJoin {
|
||||
name = "libdwarfBundle";
|
||||
paths = [ libdwarf.dev libdwarf.lib libdwarf.out ];
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "extrae";
|
||||
version = "4.0.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-performance-tools";
|
||||
repo = "extrae";
|
||||
rev = "${version}";
|
||||
sha256 = "SlMYxNQXJ0Xg90HmpnotUR3tEPVVBXhk1NtEBJwGBR4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# FIXME: Waiting for German to merge this patch. Still not in master, merged
|
||||
# on 2023-03-01 in devel branch (after 3 years), see:
|
||||
# https://github.com/bsc-performance-tools/extrae/pull/45
|
||||
./use-command.patch
|
||||
# https://github.com/bsc-performance-tools/extrae/issues/71
|
||||
./PTR.patch
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
buildInputs = [
|
||||
autoreconfHook
|
||||
gfortran
|
||||
libunwind
|
||||
binutils-unwrapped
|
||||
boost
|
||||
boost.dev
|
||||
libiberty
|
||||
mpi
|
||||
xml2
|
||||
which
|
||||
libxml2.dev
|
||||
libbfd
|
||||
#python3Packages.sphinx
|
||||
]
|
||||
++ lib.optional stdenv.cc.isClang llvmPackages.openmp;
|
||||
|
||||
preConfigure = ''
|
||||
configureFlagsArray=(
|
||||
--enable-posix-clock
|
||||
--with-binutils="${binutils-unwrapped} ${libiberty}"
|
||||
--with-dwarf=${libdwarfBundle}
|
||||
--with-elf=${libelf}
|
||||
--with-boost=${boost.dev}
|
||||
--enable-instrument-io
|
||||
--enable-instrument-dynamic-memory
|
||||
--without-memkind
|
||||
--enable-merge-in-trace
|
||||
--disable-online
|
||||
--without-opencl
|
||||
--enable-pebs-sampling
|
||||
--enable-sampling
|
||||
--with-unwind=${libunwind.dev}
|
||||
--with-xml-prefix=${libxml2.dev}
|
||||
${lib.optionalString enablePapi "--with-papi=${papi}"}
|
||||
${if (mpi != null) then ''--with-mpi=${mpi}''
|
||||
else ''--without-mpi''}
|
||||
--without-dyninst)
|
||||
'';
|
||||
|
||||
# Install the manuals only by hand, as we don't want to pull the complete
|
||||
# LaTeX world
|
||||
|
||||
# FIXME: sphinx is broken
|
||||
#postBuild = ''
|
||||
# make -C docs man
|
||||
#'';
|
||||
#
|
||||
#postInstall = ''
|
||||
# installManPage docs/builds/man/*/*
|
||||
#'';
|
||||
|
||||
# ++ (
|
||||
# if (openmp)
|
||||
# then [ "--enable-openmp" ]
|
||||
# else []
|
||||
# );
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-performance-tools/extrae";
|
||||
description = "Instrumentation framework to generate execution traces of the most used parallel runtimes";
|
||||
maintainers = [ ];
|
||||
broken = true;
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.lgpl21Plus;
|
||||
};
|
||||
}
|
||||
24
pkgs/extrae/use-command.patch
Normal file
24
pkgs/extrae/use-command.patch
Normal file
@@ -0,0 +1,24 @@
|
||||
diff --git a/substitute b/substitute
|
||||
index d5615606..82ca91a5 100755
|
||||
--- a/substitute
|
||||
+++ b/substitute
|
||||
@@ -16,7 +16,7 @@ UNAME=`uname`
|
||||
if [ "${UNAME}" = "Darwin" -o "${UNAME}" = "AIX" ] ; then
|
||||
TMPFILE=substitute-$$
|
||||
${SED} "s|${KEY}|${VALUE}|g" < ${FILE} >${TMPFILE}
|
||||
- /bin/mv -f ${TMPFILE} ${FILE}
|
||||
+ command mv -f ${TMPFILE} ${FILE}
|
||||
else
|
||||
${SED} "s|${KEY}|${VALUE}|g" -i ${FILE}
|
||||
fi
|
||||
diff --git a/substitute-all b/substitute-all
|
||||
index 48c6b76a..eda7a0f2 100755
|
||||
--- a/substitute-all
|
||||
+++ b/substitute-all
|
||||
@@ -23,5 +23,5 @@ fi
|
||||
|
||||
echo "Applying modification in ${PATHTOCHANGE} - Key = ${KEY} for value = ${VALUE}"
|
||||
|
||||
-/usr/bin/find ${PATHTOCHANGE} -type f -exec ${SCRIPT_LOCATION} "${SED}" "${KEY}" "${VALUE}" {} \;
|
||||
+command find ${PATHTOCHANGE} -type f -exec ${SCRIPT_LOCATION} "${SED}" "${KEY}" "${VALUE}" {} \;
|
||||
|
||||
64
pkgs/gpi-2/default.nix
Normal file
64
pkgs/gpi-2/default.nix
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, symlinkJoin
|
||||
, slurm
|
||||
, rdma-core
|
||||
, autoconf
|
||||
, automake
|
||||
, libtool
|
||||
, mpi
|
||||
, rsync
|
||||
, gfortran
|
||||
}:
|
||||
|
||||
let
|
||||
rdma-core-all = symlinkJoin {
|
||||
name ="rdma-core-all";
|
||||
paths = [ rdma-core.dev rdma-core.out ];
|
||||
};
|
||||
mpiAll = symlinkJoin {
|
||||
name = "mpi-all";
|
||||
paths = [ mpi.all ];
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "GPI-2";
|
||||
version = "tagaspi-2021.11";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://pm.bsc.es/gitlab/interoperability/extern/GPI-2/-/archive/${version}/GPI-2-${version}.tar.gz";
|
||||
hash = "sha256-eY2wpyTpnOXRoAcYoAP82Jq9Q7p5WwDpMj+f1vEX5zw=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = [ ./rdma-core.patch ./max-mem.patch ];
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs autogen.sh
|
||||
./autogen.sh
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-infiniband=${rdma-core-all}"
|
||||
"--with-mpi=${mpiAll}"
|
||||
"--with-slurm"
|
||||
"CFLAGS=-fPIC"
|
||||
"CXXFLAGS=-fPIC"
|
||||
];
|
||||
|
||||
buildInputs = [ slurm mpiAll rdma-core-all autoconf automake libtool rsync gfortran ];
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://pm.bsc.es/gitlab/interoperability/extern/GPI-2";
|
||||
description = "GPI-2 extended for supporting Task-Aware GASPI (TAGASPI) library";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
10
pkgs/gpi-2/max-mem.patch
Normal file
10
pkgs/gpi-2/max-mem.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
--- a/tests/tests/segments/max_mem.c 2025-09-12 13:30:53.449353591 +0200
|
||||
+++ b/tests/tests/segments/max_mem.c 2025-09-12 13:33:49.750352401 +0200
|
||||
@@ -1,5 +1,7 @@
|
||||
#include <test_utils.h>
|
||||
|
||||
+gaspi_size_t gaspi_get_system_mem (void);
|
||||
+
|
||||
/* Test allocates 45% of system memory and creates a segment that
|
||||
large or if several ranks per node exist, divided among that
|
||||
number */
|
||||
12
pkgs/gpi-2/rdma-core.patch
Normal file
12
pkgs/gpi-2/rdma-core.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
--- a/src/devices/ib/GPI2_IB.h 2025-09-12 13:25:31.564181121 +0200
|
||||
+++ b/src/devices/ib/GPI2_IB.h 2025-09-12 13:24:49.105422150 +0200
|
||||
@@ -26,6 +26,9 @@ along with GPI-2. If not, see <http://ww
|
||||
|
||||
#include "GPI2_Dev.h"
|
||||
|
||||
+/* Missing prototype as driver.h is now private */
|
||||
+int ibv_read_sysfs_file(const char *dir, const char *file, char *buf, size_t size);
|
||||
+
|
||||
#define GASPI_GID_INDEX (0)
|
||||
#define PORT_LINK_UP (5)
|
||||
#define MAX_INLINE_BYTES (128)
|
||||
511
pkgs/intel-oneapi/2023.nix
Normal file
511
pkgs/intel-oneapi/2023.nix
Normal file
@@ -0,0 +1,511 @@
|
||||
{ stdenv
|
||||
, fetchurl
|
||||
, lib
|
||||
, dpkg
|
||||
, rsync
|
||||
, libffi_3_3
|
||||
, libelf
|
||||
, libxml2
|
||||
, hwloc
|
||||
, zlib
|
||||
, autoPatchelfHook
|
||||
, libfabric
|
||||
, gcc13
|
||||
, wrapCCWith
|
||||
}:
|
||||
|
||||
# The distribution of intel packages is a mess. We are doing the installation
|
||||
# based on the .deb metapackage "intel-hpckit", and follow de dependencies,
|
||||
# which have mismatching versions.
|
||||
|
||||
# Bruno Bzeznik (bzizou) went through the madness of using their .sh installer,
|
||||
# pulling all the X dependencies here:
|
||||
# https://github.com/Gricad/nur-packages/blob/4b67c8ad0ce1baa1d2f53ba41ae5bca8e00a9a63/pkgs/intel/oneapi.nix
|
||||
|
||||
# But this is an attempt to install the packages from the APT repo
|
||||
|
||||
let
|
||||
|
||||
meta = {
|
||||
description = "Intel oneapi hpckit package component";
|
||||
homepage = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html";
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = with lib.maintainers.bsc; [ abonerib ];
|
||||
};
|
||||
|
||||
gcc = gcc13;
|
||||
|
||||
v = {
|
||||
hpckit = "2023.1.0";
|
||||
compiler = "2023.1.0";
|
||||
tbb = "2021.9.0";
|
||||
mpi = "2021.9.0";
|
||||
};
|
||||
|
||||
aptPackageIndex = stdenv.mkDerivation {
|
||||
name = "intel-oneapi-packages";
|
||||
srcs = [
|
||||
# Run update.sh to update the package lists
|
||||
./amd64-packages ./all-packages
|
||||
];
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
awk -F': ' '\
|
||||
BEGIN { print "[ {" } \
|
||||
NR>1 && /^Package: / { print "} {"; } \
|
||||
/: / { printf "%s = \"%s\";\n", $1, $2 } \
|
||||
END { print "} ]" }' $srcs > $out
|
||||
'';
|
||||
};
|
||||
|
||||
aptPackages = import aptPackageIndex;
|
||||
|
||||
apthost = "https://apt.repos.intel.com/oneapi/";
|
||||
|
||||
getSum = pkgList: name:
|
||||
let
|
||||
matches = lib.filter (x: name == x.Package) pkgList;
|
||||
#n = lib.length matches;
|
||||
#match = builtins.trace (name + " -- ${builtins.toString n}") (lib.elemAt matches 0);
|
||||
match = lib.elemAt matches 0;
|
||||
in
|
||||
match.SHA256;
|
||||
|
||||
getUrl = pkgList: name:
|
||||
let
|
||||
matches = lib.filter (x: name == x.Package) pkgList;
|
||||
#match = assert lib.length matches == 1; lib.elemAt matches 0;
|
||||
n = lib.length matches;
|
||||
match =
|
||||
#builtins.trace (name + " -- n=${builtins.toString n}")
|
||||
(lib.elemAt matches 0);
|
||||
in
|
||||
apthost + match.Filename;
|
||||
|
||||
uncompressDebs = debs: name: stdenv.mkDerivation {
|
||||
name = name;
|
||||
srcs = debs;
|
||||
nativeBuildInputs = [ dpkg ];
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
for src in $srcs; do
|
||||
echo "unpacking $src"
|
||||
dpkg -x $src $out
|
||||
done
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
joinDebs = name: names:
|
||||
let
|
||||
urls = builtins.map (x: getUrl aptPackages x) names;
|
||||
sums = builtins.map (x: getSum aptPackages x) names;
|
||||
getsrc = url: sha256: builtins.fetchurl { inherit url sha256; };
|
||||
debs = lib.zipListsWith getsrc urls sums;
|
||||
in
|
||||
uncompressDebs debs "${name}-source";
|
||||
|
||||
|
||||
intel-mpi = stdenv.mkDerivation rec {
|
||||
version = v.mpi;
|
||||
pname = "intel-mpi";
|
||||
|
||||
src = joinDebs pname [
|
||||
"intel-oneapi-mpi-devel-${version}"
|
||||
"intel-oneapi-mpi-${version}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
rsync
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libfabric
|
||||
zlib
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
dontStrip = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/{bin,etc,lib,include}
|
||||
mkdir -p $out/share/man
|
||||
|
||||
cd $src
|
||||
|
||||
# MPI
|
||||
pushd opt/intel/oneapi/mpi/${version}
|
||||
rsync -a man/ $out/share/man/
|
||||
rsync -a etc/ $out/etc/
|
||||
rsync -a include/ $out/include/
|
||||
cp -a lib/lib* $out/lib/
|
||||
# Copy the actual libmpi.so from release
|
||||
cp -a lib/release/lib* $out/lib
|
||||
# Broken due missing libze_loader.so.1
|
||||
rsync -a --exclude IMB-MPI1-GPU bin/ $out/bin/
|
||||
popd
|
||||
'';
|
||||
preFixup = ''
|
||||
for i in $out/bin/mpi* ; do
|
||||
echo "Fixing paths in $i"
|
||||
sed -i "s:I_MPI_SUBSTITUTE_INSTALLDIR:$out:g" "$i"
|
||||
done
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
intel-tbb = stdenv.mkDerivation rec {
|
||||
version = v.tbb;
|
||||
pname = "intel-tbb";
|
||||
src = joinDebs pname [
|
||||
"intel-oneapi-tbb-${version}"
|
||||
"intel-oneapi-tbb-common-${version}"
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
intel-mpi
|
||||
libffi_3_3
|
||||
libelf
|
||||
libxml2
|
||||
hwloc
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
rsync
|
||||
];
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
dontStrip = true;
|
||||
|
||||
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib
|
||||
|
||||
cd $src
|
||||
|
||||
pushd opt/intel/oneapi/tbb/${version}
|
||||
# Libraries
|
||||
rsync -a lib/intel64/gcc4.8/ $out/lib/
|
||||
popd
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
intel-compiler-shared = stdenv.mkDerivation rec {
|
||||
version = v.compiler;
|
||||
pname = "intel-compiler-shared";
|
||||
src = joinDebs pname [
|
||||
"intel-oneapi-compiler-shared-${version}"
|
||||
"intel-oneapi-compiler-shared-common-${version}"
|
||||
"intel-oneapi-compiler-shared-runtime-${version}"
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
intel-mpi
|
||||
intel-tbb
|
||||
libffi_3_3
|
||||
libelf
|
||||
libxml2
|
||||
zlib
|
||||
hwloc
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
rsync
|
||||
];
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
dontStrip = true;
|
||||
|
||||
autoPatchelfIgnoreMissingDeps = [ "libsycl.so.6" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{bin,lib,include}
|
||||
mkdir -p $out/share/man
|
||||
|
||||
cd $src
|
||||
|
||||
# Compiler
|
||||
pushd opt/intel/oneapi/compiler/${version}
|
||||
pushd linux
|
||||
# Binaries
|
||||
rsync -a bin/ $out/bin/
|
||||
rsync -a --exclude libcilkrts.so.5 bin/intel64/ $out/bin/
|
||||
|
||||
# Libraries
|
||||
rsync -a lib/ $out/lib/
|
||||
rsync -a lib/x64/ $out/lib/
|
||||
rsync -a compiler/lib/intel64_lin/ $out/lib/
|
||||
chmod +w $out/lib
|
||||
cp bin/intel64/libcilkrts.so.5 $out/lib/
|
||||
ln -s $out/lib/libcilkrts.so.5 $out/lib/libcilkrts.so
|
||||
|
||||
# Headers
|
||||
rsync -a compiler/include/ $out/include/
|
||||
popd
|
||||
popd
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
|
||||
intel-compiler-fortran = stdenv.mkDerivation rec {
|
||||
version = v.compiler;
|
||||
pname = "intel-fortran";
|
||||
src = joinDebs pname [
|
||||
"intel-oneapi-compiler-fortran-${version}"
|
||||
"intel-oneapi-compiler-fortran-common-${version}"
|
||||
"intel-oneapi-compiler-fortran-runtime-${version}"
|
||||
|
||||
"intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-${version}"
|
||||
#"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-${version}"
|
||||
#"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-${version}"
|
||||
];
|
||||
|
||||
langFortran = true;
|
||||
|
||||
buildInputs = [
|
||||
intel-mpi
|
||||
intel-compiler-shared
|
||||
libffi_3_3
|
||||
libelf
|
||||
libxml2
|
||||
hwloc
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
rsync
|
||||
];
|
||||
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{bin,lib,include}
|
||||
mkdir -p $out/share/man
|
||||
|
||||
cd $src
|
||||
|
||||
# Compiler
|
||||
pushd opt/intel/oneapi/compiler/${version}
|
||||
pushd linux
|
||||
# Binaries
|
||||
rsync -a bin/ $out/bin/
|
||||
rsync -a bin/intel64/ $out/bin/
|
||||
|
||||
# Libraries
|
||||
rsync -a lib/ $out/lib/
|
||||
rsync -a compiler/lib/intel64_lin/ $out/lib/
|
||||
|
||||
# Headers
|
||||
rsync -a compiler/include/ $out/include/
|
||||
popd
|
||||
|
||||
# Manuals
|
||||
rsync -a documentation/en/man/common/ $out/share/man/
|
||||
|
||||
# Fix lib_lin
|
||||
ln -s $out/lib $out/lib_lin
|
||||
popd
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
intel-compiler = stdenv.mkDerivation rec {
|
||||
version = v.compiler;
|
||||
pname = "intel-compiler";
|
||||
src = joinDebs pname [
|
||||
# C/C++
|
||||
"intel-oneapi-dpcpp-cpp-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-common-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-runtime-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-common-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-${version}"
|
||||
];
|
||||
dontCheckForBrokenSymlinks = true;
|
||||
# From https://aur.archlinux.org/packages/intel-oneapi-compiler:
|
||||
# - intel-oneapi-compiler-cpp-eclipse-cfg-2023.0.0-25370_all.deb
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# x intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.0.0-2023.0.0-25370_amd64.deb (empty)
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.0.0-25370_amd64.deb
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-common-2023.0.0-2023.0.0-25370_all.deb
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-common-2023.0.0-2023.0.0-25370_all.deb
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-compiler-dpcpp-eclipse-cfg-2023.0.0-25370_all.deb
|
||||
# - intel-oneapi-compiler-fortran-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-compiler-fortran-common-2023.0.0-2023.0.0-25370_all.deb
|
||||
# - intel-oneapi-compiler-fortran-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-compiler-fortran-runtime-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-compiler-shared-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-compiler-shared-common-2023.0.0-2023.0.0-25370_all.deb
|
||||
# - intel-oneapi-compiler-shared-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-openmp-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-openmp-common-2023.0.0-2023.0.0-25370_all.deb
|
||||
|
||||
buildInputs = [
|
||||
intel-compiler-shared
|
||||
libffi_3_3
|
||||
libelf
|
||||
libxml2
|
||||
hwloc
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
rsync
|
||||
];
|
||||
autoPatchelfIgnoreMissingDeps = [ "libtbb.so.12" "libtbbmalloc.so.2" "libze_loader.so.1" ];
|
||||
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{bin,lib}
|
||||
mkdir -p $out/share/man
|
||||
|
||||
cd $src
|
||||
|
||||
# Compiler
|
||||
pushd opt/intel/oneapi/compiler/${version}
|
||||
pushd linux
|
||||
# Binaries
|
||||
rsync -a bin/ $out/bin/
|
||||
rsync -a bin-llvm/ $out/bin/
|
||||
rsync -a bin/intel64/ $out/bin/
|
||||
|
||||
# Libraries
|
||||
rsync -a --exclude oclfpga lib/ $out/lib/
|
||||
rsync -a compiler/lib/intel64_lin/ $out/lib/
|
||||
|
||||
# Headers
|
||||
rsync -a compiler/include/ $out/include/ # Intrinsics for icc
|
||||
rsync -a include/ $out/include/
|
||||
chmod +w $out/include
|
||||
ln -s $out/lib/clang/16.0.0/include/ $out/include/icx # For icx
|
||||
popd
|
||||
|
||||
# Manuals
|
||||
rsync -a documentation/en/man/common/ $out/share/man/
|
||||
popd
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
wrapIntel = { cc, mygcc, extraBuild ? "", extraInstall ? "" }:
|
||||
let
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
in (wrapCCWith {
|
||||
cc = cc;
|
||||
extraBuildCommands = ''
|
||||
echo "-isystem ${cc}/include" >> $out/nix-support/cc-cflags
|
||||
echo "-isystem ${cc}/include/intel64" >> $out/nix-support/cc-cflags
|
||||
|
||||
echo "-L${mygcc.cc}/lib/gcc/${targetConfig}/${mygcc.version}" >> $out/nix-support/cc-ldflags
|
||||
echo "-L${mygcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags
|
||||
echo "-L${intel-compiler-shared}/lib" >> $out/nix-support/cc-ldflags
|
||||
echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags
|
||||
|
||||
# Need the gcc in the path
|
||||
# FIXME: We should find a better way to modify the PATH instead of using
|
||||
# this ugly hack. See https://jungle.bsc.es/git/rarias/bscpkgs/issues/9
|
||||
echo 'path_backup="${mygcc}/bin:$path_backup"' >> $out/nix-support/cc-wrapper-hook
|
||||
|
||||
# Disable hardening by default
|
||||
echo "" > $out/nix-support/add-hardening.sh
|
||||
'' + extraBuild;
|
||||
}).overrideAttrs (old: {
|
||||
installPhase = old.installPhase + extraInstall;
|
||||
});
|
||||
|
||||
icx-wrapper = wrapIntel rec {
|
||||
cc = intel-compiler;
|
||||
mygcc = gcc;
|
||||
extraBuild = ''
|
||||
wrap icx $wrapper $ccPath/icx
|
||||
wrap icpx $wrapper $ccPath/icpx
|
||||
echo "-isystem ${cc}/include/icx" >> $out/nix-support/cc-cflags
|
||||
echo "--gcc-toolchain=${mygcc.cc}" >> $out/nix-support/cc-cflags
|
||||
'';
|
||||
extraInstall = ''
|
||||
export named_cc="icx"
|
||||
export named_cxx="icpx"
|
||||
'';
|
||||
};
|
||||
|
||||
# Legacy
|
||||
icc-wrapper = wrapIntel rec {
|
||||
cc = intel-compiler;
|
||||
# Intel icc classic compiler tries to behave like the gcc found in $PATH.
|
||||
# EVEN if it doesn't support some of the features. See:
|
||||
# https://community.intel.com/t5/Intel-C-Compiler/builtin-shuffle-GCC-compatibility-and-has-builtin/td-p/1143619
|
||||
mygcc = gcc;
|
||||
extraBuild = ''
|
||||
wrap icc $wrapper $ccPath/icc
|
||||
wrap icpc $wrapper $ccPath/icpc
|
||||
echo "-isystem ${cc}/include/icc" >> $out/nix-support/cc-cflags
|
||||
'';
|
||||
extraInstall = ''
|
||||
export named_cc="icc"
|
||||
export named_cxx="icpc"
|
||||
'';
|
||||
};
|
||||
|
||||
ifort-wrapper = wrapIntel rec {
|
||||
cc = intel-compiler-fortran;
|
||||
mygcc = gcc;
|
||||
extraBuild = ''
|
||||
wrap ifort $wrapper $ccPath/ifort
|
||||
'';
|
||||
extraInstall = ''
|
||||
export named_fc="ifort"
|
||||
'';
|
||||
};
|
||||
|
||||
stdenv-icc = stdenv.override {
|
||||
cc = icc-wrapper;
|
||||
allowedRequisites = null;
|
||||
};
|
||||
|
||||
stdenv-icx = stdenv.override {
|
||||
cc = icx-wrapper;
|
||||
allowedRequisites = null;
|
||||
};
|
||||
|
||||
stdenv-ifort = stdenv.override {
|
||||
cc = ifort-wrapper;
|
||||
allowedRequisites = null;
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
inherit intel-mpi;
|
||||
icx = icx-wrapper;
|
||||
icc = icc-wrapper;
|
||||
ifort = ifort-wrapper;
|
||||
|
||||
stdenv = stdenv-icx;
|
||||
stdenv-icc = stdenv-icc;
|
||||
stdenv-ifort = stdenv-ifort;
|
||||
}
|
||||
8769
pkgs/intel-oneapi/all-packages
Normal file
8769
pkgs/intel-oneapi/all-packages
Normal file
File diff suppressed because it is too large
Load Diff
34075
pkgs/intel-oneapi/amd64-packages
Normal file
34075
pkgs/intel-oneapi/amd64-packages
Normal file
File diff suppressed because it is too large
Load Diff
4
pkgs/intel-oneapi/update.sh
Executable file
4
pkgs/intel-oneapi/update.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
curl https://apt.repos.intel.com/oneapi/dists/all/main/binary-amd64/Packages -o amd64-packages
|
||||
curl https://apt.repos.intel.com/oneapi/dists/all/main/binary-all/Packages -o all-packages
|
||||
137
pkgs/llvm-ompss2/clang.nix
Normal file
137
pkgs/llvm-ompss2/clang.nix
Normal file
@@ -0,0 +1,137 @@
|
||||
{
|
||||
llvmPackages_latest
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, bash
|
||||
, python3
|
||||
, perl
|
||||
, which
|
||||
, elfutils
|
||||
, libffi
|
||||
, zlib
|
||||
, pkg-config
|
||||
, gcc # needed to set the rpath of libstdc++ for clang-tblgen
|
||||
, enableDebug ? false
|
||||
, useGit ? false
|
||||
, gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git"
|
||||
, gitBranch ? "master"
|
||||
, gitCommit ? "880e2341c56bad1dc14e8c369fb3356bec19018e"
|
||||
}:
|
||||
|
||||
let
|
||||
stdenv = llvmPackages_latest.stdenv;
|
||||
|
||||
release = rec {
|
||||
version = "2025.06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "llvm";
|
||||
rev = "refs/tags/github-release-${version}";
|
||||
hash = "sha256-ww9PpRmtz/M9IyLiZ8rAehx2UW4VpQt+svf4XfKBzKo=";
|
||||
};
|
||||
};
|
||||
|
||||
git = rec {
|
||||
version = src.shortRev;
|
||||
src = builtins.fetchGit {
|
||||
url = gitUrl;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
};
|
||||
|
||||
source = if (useGit) then git else release;
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
pname = "clang-ompss2";
|
||||
inherit (source) src version;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru = {
|
||||
CC = "clang";
|
||||
CXX = "clang++";
|
||||
|
||||
isClang = true;
|
||||
isClangWithOmpss = true;
|
||||
|
||||
inherit gcc zlib;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
bash
|
||||
cmake
|
||||
elfutils
|
||||
llvmPackages_latest.lld
|
||||
pkg-config
|
||||
python3
|
||||
perl
|
||||
which
|
||||
zlib
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libffi
|
||||
zlib
|
||||
gcc.cc.lib # Required for libstdc++.so.6
|
||||
];
|
||||
|
||||
# Error with -D_FORTIFY_SOURCE=2, see https://bugs.gentoo.org/636604:
|
||||
# /build/source/compiler-rt/lib/tsan/dd/dd_interceptors.cpp:225:20:
|
||||
# error: redefinition of 'realpath'
|
||||
# Requires disabling the "fortify" set of flags, however, for performance we
|
||||
# disable all:
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
cmakeBuildType = if enableDebug then "Debug" else "Release";
|
||||
|
||||
dontStrip = enableDebug;
|
||||
|
||||
dontUseCmakeBuildDir = true;
|
||||
|
||||
# Fix the host triple, as it has changed in a newer config.guess:
|
||||
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=commitdiff;h=ca9bfb8cc75a2be1819d89c664a867785c96c9ba
|
||||
preConfigure = ''
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmakeDir="../llvm"
|
||||
cmakeFlagsArray=(
|
||||
"-DLLVM_HOST_TRIPLE=${stdenv.targetPlatform.config}"
|
||||
"-DLLVM_TARGETS_TO_BUILD=host"
|
||||
"-DLLVM_BUILD_LLVM_DYLIB=ON"
|
||||
"-DLLVM_LINK_LLVM_DYLIB=ON"
|
||||
# Required to run clang-ast-dump and clang-tblgen during build
|
||||
"-DCMAKE_BUILD_RPATH=$PWD/lib:${zlib}/lib:${gcc.cc.lib}/lib"
|
||||
"-DLLVM_ENABLE_LLD=ON"
|
||||
"-DCMAKE_CXX_FLAGS_DEBUG=-g -ggnu-pubnames"
|
||||
"-DCMAKE_EXE_LINKER_FLAGS_DEBUG=-Wl,--gdb-index"
|
||||
"-DLLVM_LIT_ARGS=-sv --xunit-xml-output=xunit.xml"
|
||||
"-DLLVM_ENABLE_PROJECTS=clang;compiler-rt;lld"
|
||||
"-DLLVM_ENABLE_ASSERTIONS=ON"
|
||||
"-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON"
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DLLVM_ENABLE_ZLIB=FORCE_ON"
|
||||
"-DLLVM_ENABLE_LIBXML2=OFF"
|
||||
# Set the rpath to include external libraries (zlib) both on build and
|
||||
# install
|
||||
"-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON"
|
||||
"-DCMAKE_INSTALL_RPATH=${zlib}/lib:${gcc.cc.lib}/lib"
|
||||
"-DLLVM_APPEND_VC_REV=ON"
|
||||
"-DLLVM_FORCE_VC_REVISION=${source.version}"
|
||||
)
|
||||
'';
|
||||
|
||||
# About "-DCLANG_DEFAULT_NANOS6_HOME=${nanos6}", we could specify a default
|
||||
# nanos6 installation, but this is would require a recompilation of clang each
|
||||
# time nanos6 is changed. Better to use the environment variable NANOS6_HOME,
|
||||
# and specify nanos6 at run time.
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.pm.bsc.es/llvm-ompss/llvm-mono";
|
||||
description = "C language family frontend for LLVM (for OmpSs-2)";
|
||||
maintainers = with lib.maintainers.bsc; [ rpenacob ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = [ lib.licenses.asl20 lib.licenses.llvm-exception ];
|
||||
};
|
||||
}
|
||||
70
pkgs/llvm-ompss2/default.nix
Normal file
70
pkgs/llvm-ompss2/default.nix
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, gcc
|
||||
, clangOmpss2Unwrapped
|
||||
, openmp ? null
|
||||
, wrapCCWith
|
||||
, llvmPackages_latest
|
||||
, ompss2rt ? null
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
usingNodesAndOmpv = (openmp.pname == "openmp-v" && ompss2rt.pname == "nodes");
|
||||
sameNosv = openmp.nosv == ompss2rt.nosv;
|
||||
in
|
||||
|
||||
assert assertMsg (usingNodesAndOmpv -> sameNosv) "OpenMP-V and NODES must share the same nOS-V";
|
||||
|
||||
let
|
||||
homevar = if ompss2rt.pname == "nanos6" then "NANOS6_HOME" else "NODES_HOME";
|
||||
rtname = if ompss2rt.pname == "nanos6" then "libnanos6" else "libnodes";
|
||||
ompname = if openmp.pname == "openmp-v" then "libompv" else "libomp";
|
||||
|
||||
|
||||
# We need to replace the lld linker from bintools with our linker just built,
|
||||
# otherwise we run into incompatibility issues when mixing compiler and linker
|
||||
# versions.
|
||||
bintools-unwrapped = llvmPackages_latest.tools.bintools-unwrapped.override {
|
||||
lld = clangOmpss2Unwrapped;
|
||||
};
|
||||
bintools = llvmPackages_latest.tools.bintools.override {
|
||||
bintools = bintools-unwrapped;
|
||||
};
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
inherit gcc;
|
||||
cc = clangOmpss2Unwrapped;
|
||||
gccVersion = with versions; let v = gcc.version; in concatStringsSep "." [(major v) (minor v) (patch v)];
|
||||
in wrapCCWith {
|
||||
inherit cc bintools;
|
||||
# extraPackages adds packages to depsTargetTargetPropagated
|
||||
extraPackages = optional (openmp != null) openmp;
|
||||
extraBuildCommands = ''
|
||||
echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
|
||||
echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-cflags
|
||||
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-ldflags
|
||||
echo "-L${gcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags
|
||||
|
||||
for dir in ${gcc.cc}/include/c++/*; do
|
||||
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
|
||||
done
|
||||
for dir in ${gcc.cc}/include/c++/*/${targetConfig}; do
|
||||
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
|
||||
done
|
||||
|
||||
echo "--gcc-toolchain=${gcc}" >> $out/nix-support/cc-cflags
|
||||
|
||||
wrap clang++ $wrapper $ccPath/clang++
|
||||
|
||||
'' + optionalString (openmp != null) ''
|
||||
echo "export OPENMP_RUNTIME=${ompname}" >> $out/nix-support/cc-wrapper-hook
|
||||
'' + optionalString (ompss2rt != null) ''
|
||||
echo "export OMPSS2_RUNTIME=${rtname}" >> $out/nix-support/cc-wrapper-hook
|
||||
echo "export ${homevar}=${ompss2rt}" >> $out/nix-support/cc-wrapper-hook
|
||||
'' + optionalString (ompss2rt != null && ompss2rt.pname == "nodes") ''
|
||||
echo "export NOSV_HOME=${ompss2rt.nosv}" >> $out/nix-support/cc-wrapper-hook
|
||||
'';
|
||||
}
|
||||
|
||||
86
pkgs/llvm-ompss2/openmp.nix
Normal file
86
pkgs/llvm-ompss2/openmp.nix
Normal file
@@ -0,0 +1,86 @@
|
||||
{ lib
|
||||
, llvmPackages_latest
|
||||
, monorepoSrc
|
||||
, runCommand
|
||||
, cmake
|
||||
, ninja
|
||||
, llvm
|
||||
, perl
|
||||
, pkg-config
|
||||
, version
|
||||
, nosv
|
||||
, ovni
|
||||
, python3
|
||||
, enableNosv ? false
|
||||
, enableDebug ? false
|
||||
, enableOvni ? false
|
||||
}:
|
||||
|
||||
assert enableOvni -> enableNosv;
|
||||
|
||||
let
|
||||
stdenv = llvmPackages_latest.stdenv;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "openmp" + (lib.optionalString enableNosv "-v");
|
||||
inherit version;
|
||||
|
||||
src = runCommand "${pname}-src" {} ''
|
||||
mkdir -p "$out"
|
||||
cp -r ${monorepoSrc}/cmake "$out"
|
||||
cp -r ${monorepoSrc}/openmp "$out"
|
||||
'';
|
||||
|
||||
sourceRoot = "${src.name}/openmp";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
perl
|
||||
pkg-config
|
||||
python3
|
||||
] ++ lib.optionals enableNosv [
|
||||
nosv
|
||||
] ++ lib.optionals enableOvni [
|
||||
ovni
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
cmakeBuildType = if enableDebug then "Debug" else "Release";
|
||||
|
||||
dontStrip = enableDebug;
|
||||
|
||||
separateDebugInfo = true;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DLIBOMP_OMPD_SUPPORT=OFF"
|
||||
"-DOPENMP_ENABLE_LIBOMPTARGET=OFF"
|
||||
];
|
||||
|
||||
# Remove support for GNU and Intel Openmp.
|
||||
# Also, remove libomp if building with nosv, as there is no support to build
|
||||
# only one runtime at a time.
|
||||
postInstall = ''
|
||||
rm -f $out/lib/libgomp*
|
||||
rm -f $out/lib/libiomp*
|
||||
'' + lib.optionalString enableNosv ''
|
||||
rm -f $out/lib/libomp.*
|
||||
rm -f $out/libllvmrt/libomp.*
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit nosv;
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.pm.bsc.es/llvm-ompss/llvm-mono";
|
||||
description = "Support for the OpenMP language (with nOS-V)";
|
||||
maintainers = with lib.maintainers.bsc; [ rpenacob ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = [ lib.licenses.asl20 lib.licenses.llvm-exception ];
|
||||
};
|
||||
}
|
||||
|
||||
50
pkgs/lmbench/default.nix
Normal file
50
pkgs/lmbench/default.nix
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
libtirpc,
|
||||
fetchFromGitHub
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lmbench";
|
||||
version = "941a0dcc";
|
||||
|
||||
# We use the intel repo as they have fixed some problems
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = pname;
|
||||
rev = "941a0dcc0e7bdd9bb0dee05d7f620e77da8c43af";
|
||||
sha256 = "sha256-SzwplRBO3V0R3m3p15n71ivYBMGoLsajFK2TapYxdqk=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -i "s@/bin/rm@rm@g" $(find . -name Makefile)
|
||||
'';
|
||||
|
||||
buildInputs = [ libtirpc ];
|
||||
patches = [ ./fix-install.patch ./gcc-14.patch ];
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
enableParallelBuilding = false;
|
||||
|
||||
preBuild = ''
|
||||
makeFlagsArray+=(
|
||||
-C src
|
||||
BASE=$out
|
||||
CFLAGS=-Wno-implicit-int
|
||||
CPPFLAGS=-I${libtirpc.dev}/include/tirpc
|
||||
LDFLAGS=-ltirpc
|
||||
CC=$CC
|
||||
AR=$AR
|
||||
)
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "lmbench";
|
||||
homepage = "https://github.com/intel/lmbench";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.all;
|
||||
license = lib.licenses.gpl2Plus;
|
||||
};
|
||||
}
|
||||
10
pkgs/lmbench/fix-install.patch
Normal file
10
pkgs/lmbench/fix-install.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -144,6 +144,7 @@ install-target:
|
||||
if [ ! -d $(BASE)/include ]; then mkdir $(BASE)/include; fi
|
||||
if [ ! -d $(BASE)/lib ]; then mkdir $(BASE)/lib; fi
|
||||
cp $(EXES) $(BASE)/bin
|
||||
+ cp $(OPT_EXES) $(BASE)/bin
|
||||
cp $(INCS) $(BASE)/include
|
||||
cp $O/lmbench.a $(BASE)/lib/libmbench.a
|
||||
cd ../doc; env MAKEFLAGS="$(MAKEFLAGS)" make CC="${CC}" OS="${OS}" BASE="$(BASE)" install
|
||||
77
pkgs/lmbench/gcc-14.patch
Normal file
77
pkgs/lmbench/gcc-14.patch
Normal file
@@ -0,0 +1,77 @@
|
||||
From a3c6e7d303cd8368e8d4e35be7cbc1997e801257 Mon Sep 17 00:00:00 2001
|
||||
From: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
|
||||
Date: Mon, 21 Jul 2025 17:38:58 +0200
|
||||
Subject: [PATCH] Misc fixes to build with gcc 14
|
||||
|
||||
---
|
||||
src/bench.h | 2 ++
|
||||
src/lat_select.c | 2 +-
|
||||
src/lib_debug.c | 1 +
|
||||
src/lib_sched.c | 2 +-
|
||||
src/lib_timing.c | 2 +-
|
||||
5 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/bench.h b/src/bench.h
|
||||
index 8166408..4da9079 100644
|
||||
--- a/src/bench.h
|
||||
+++ b/src/bench.h
|
||||
@@ -320,4 +320,6 @@ extern int handle_scheduler(int childno, int benchproc, int nbenchprocs);
|
||||
extern char *rpc_xact_1();
|
||||
extern char *client_rpc_xact_1();
|
||||
|
||||
+void lmbench_usage(int argc, char *argv[], char* usage);
|
||||
+
|
||||
#endif /* _BENCH_H */
|
||||
diff --git a/src/lat_select.c b/src/lat_select.c
|
||||
index 583b505..39df369 100644
|
||||
--- a/src/lat_select.c
|
||||
+++ b/src/lat_select.c
|
||||
@@ -164,7 +164,7 @@ doit(iter_t iterations, void * cookie)
|
||||
state_t * state = (state_t *)cookie;
|
||||
fd_set nosave;
|
||||
static struct timeval tv;
|
||||
- static count = 0;
|
||||
+ static int count = 0;
|
||||
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_usec = 0;
|
||||
diff --git a/src/lib_debug.c b/src/lib_debug.c
|
||||
index e8347dd..cf65312 100644
|
||||
--- a/src/lib_debug.c
|
||||
+++ b/src/lib_debug.c
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "bench.h"
|
||||
#include "lib_debug.h"
|
||||
+#include <math.h>
|
||||
|
||||
/*
|
||||
* return micro-seconds / iteration at the the fraction point.
|
||||
diff --git a/src/lib_sched.c b/src/lib_sched.c
|
||||
index aa83ae0..4f16bbf 100644
|
||||
--- a/src/lib_sched.c
|
||||
+++ b/src/lib_sched.c
|
||||
@@ -91,7 +91,7 @@ handle_scheduler(int childno, int benchproc, int nbenchprocs)
|
||||
childno * (nbenchprocs + 1) + benchproc);
|
||||
} else {
|
||||
/* default action: do nothing */
|
||||
- return;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
return sched_pin(cpu % sched_ncpus());
|
||||
diff --git a/src/lib_timing.c b/src/lib_timing.c
|
||||
index af8cf68..7ec9652 100644
|
||||
--- a/src/lib_timing.c
|
||||
+++ b/src/lib_timing.c
|
||||
@@ -1623,7 +1623,7 @@ bread(void* buf, long nbytes)
|
||||
void
|
||||
touch(char *buf, int nbytes)
|
||||
{
|
||||
- static psize;
|
||||
+ static int psize;
|
||||
|
||||
if (!psize) {
|
||||
psize = getpagesize();
|
||||
--
|
||||
2.49.0
|
||||
|
||||
7
pkgs/maintainers.nix
Normal file
7
pkgs/maintainers.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
builtins.mapAttrs (name: value: { email = name + "@bsc.es"; } // value) {
|
||||
abonerib.name = "Aleix Boné";
|
||||
arocanon.name = "Aleix Roca";
|
||||
rarias.name = "Rodrigo Arias";
|
||||
rpenacob.name = "Raúl Peñacoba";
|
||||
varcila.name = "Vincent Arcila";
|
||||
}
|
||||
74
pkgs/mcxx/default.nix
Normal file
74
pkgs/mcxx/default.nix
Normal file
@@ -0,0 +1,74 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, nanos6
|
||||
, gperf
|
||||
, python3
|
||||
, gfortran
|
||||
, pkg-config
|
||||
, sqlite
|
||||
, flex
|
||||
, bison
|
||||
, gcc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mcxx";
|
||||
version = "2023.11";
|
||||
|
||||
passthru = {
|
||||
CC = "mcc";
|
||||
CXX = "mcxx";
|
||||
};
|
||||
|
||||
# mcxx doesn't use tags, so we pick the same version of the ompss2 release
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = pname;
|
||||
rev = "github-release-${version}";
|
||||
hash = "sha256-GyBvyy/HD3t9rHSXAYZRMhn4o4Nm/HFfjuOS8J0LPu8=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
bison
|
||||
flex
|
||||
python3
|
||||
gfortran
|
||||
pkg-config
|
||||
gperf
|
||||
gcc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
nanos6
|
||||
sqlite.dev
|
||||
];
|
||||
|
||||
patches = [ ./intel.patch ];
|
||||
|
||||
preConfigure = ''
|
||||
export ICC=icc
|
||||
export ICPC=icpc
|
||||
export IFORT=ifort
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--enable-ompss-2"
|
||||
"--with-nanos6=${nanos6}"
|
||||
# Fails with "memory exhausted" with bison 3.7.1
|
||||
# "--enable-bison-regeneration"
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/mcxx";
|
||||
description = "C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping";
|
||||
maintainers = with lib.maintainers.bsc; [ rpenacob ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
69
pkgs/mcxx/git.nix
Normal file
69
pkgs/mcxx/git.nix
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, nanos6
|
||||
, gperf
|
||||
, python
|
||||
, gfortran
|
||||
, pkg-config
|
||||
, sqlite
|
||||
, flex
|
||||
, bison
|
||||
, gcc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mcxx";
|
||||
version = src.shortRev;
|
||||
|
||||
passthru = {
|
||||
CC = "mcc";
|
||||
CXX = "mcxx";
|
||||
};
|
||||
|
||||
src = builtins.fetchGit {
|
||||
url = "ssh://git@bscpm04.bsc.es/mercurium/mcxx";
|
||||
ref = "master";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs = [
|
||||
autoreconfHook
|
||||
nanos6
|
||||
gperf
|
||||
python
|
||||
gfortran
|
||||
pkg-config
|
||||
sqlite.dev
|
||||
bison
|
||||
flex
|
||||
gcc
|
||||
];
|
||||
|
||||
# TODO: Not sure if we need this patch anymore (?)
|
||||
#patches = [ ./intel.patch ];
|
||||
|
||||
preConfigure = ''
|
||||
export ICC=icc
|
||||
export ICPC=icpc
|
||||
export IFORT=ifort
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--enable-ompss-2"
|
||||
"--with-nanos6=${nanos6}"
|
||||
# Fails with "memory exhausted" with bison 3.7.1
|
||||
# "--enable-bison-regeneration"
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/mcxx";
|
||||
description = "C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping";
|
||||
maintainers = with lib.maintainers.bsc; [ rpenacob ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
19
pkgs/mcxx/intel.patch
Normal file
19
pkgs/mcxx/intel.patch
Normal file
@@ -0,0 +1,19 @@
|
||||
--- a/configure.ac 2020-07-10 16:15:11.431606455 +0200
|
||||
+++ b/configure.ac 2020-07-10 16:15:24.291586572 +0200
|
||||
@@ -367,16 +367,6 @@
|
||||
[ enable_intel_compilers="yes"])
|
||||
AC_MSG_RESULT([$enable_intel_compilers])
|
||||
|
||||
-
|
||||
-IFORT=
|
||||
-ICC=
|
||||
-ICPC=
|
||||
-if test x"$enable_intel_compilers" = x"yes";
|
||||
-then
|
||||
- AC_CHECK_PROG([IFORT], [ifort], [ifort])
|
||||
- AC_CHECK_PROG([ICC], [icc], [icc])
|
||||
- AC_CHECK_PROG([ICPC], [icpc], [icpc])
|
||||
-fi
|
||||
dnl --------------- END Intel Compilers ---------------------
|
||||
|
||||
mic_compilation="no"
|
||||
68
pkgs/mcxx/rarias.nix
Normal file
68
pkgs/mcxx/rarias.nix
Normal file
@@ -0,0 +1,68 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchgit
|
||||
, autoreconfHook
|
||||
, nanos6
|
||||
, gperf
|
||||
, python
|
||||
, gfortran
|
||||
, pkg-config
|
||||
, sqlite
|
||||
, flex
|
||||
, bison
|
||||
, gcc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "mcxx-rarias";
|
||||
#version attribute ignored when using fetchgit:
|
||||
#version = "2.2.0-70a299cf";
|
||||
|
||||
#src = /home/Computational/rarias/mcxx;
|
||||
src = builtins.fetchGit {
|
||||
url = "ssh://git@bscpm04.bsc.es/rarias/mcxx";
|
||||
rev = "44129a6ac05b8f78b06e9e2eff71438b5ca4d29f";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs = [
|
||||
autoreconfHook
|
||||
nanos6
|
||||
gperf
|
||||
python
|
||||
gfortran
|
||||
pkg-config
|
||||
sqlite.dev
|
||||
bison
|
||||
flex
|
||||
gcc
|
||||
];
|
||||
|
||||
patches = [ ./intel.patch ];
|
||||
|
||||
preConfigure = ''
|
||||
export ICC=icc
|
||||
export ICPC=icpc
|
||||
export IFORT=ifort
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--enable-ompss-2"
|
||||
"--with-nanos6=${nanos6}"
|
||||
# "--enable-bison-regeneration"
|
||||
];
|
||||
|
||||
# Regenerate ia32 builtins to add the ones for gcc9
|
||||
#preBuild = ''
|
||||
# make generate_builtins_ia32 GXX_X86_BUILTINS=${gcc}/bin/g++
|
||||
#'';
|
||||
#
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/mcxx";
|
||||
description = "C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
40
pkgs/mpich/default.nix
Normal file
40
pkgs/mpich/default.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, libfabric
|
||||
, mpich
|
||||
, pmix
|
||||
, gfortran
|
||||
, symlinkJoin
|
||||
}:
|
||||
|
||||
let
|
||||
# pmix comes with the libraries in .out and headers in .dev
|
||||
pmixAll = symlinkJoin {
|
||||
name = "pmix-all";
|
||||
paths = [ pmix.dev pmix.out ];
|
||||
};
|
||||
in mpich.overrideAttrs (old: {
|
||||
buildInput = old.buildInputs ++ [
|
||||
libfabric
|
||||
pmixAll
|
||||
];
|
||||
configureFlags = [
|
||||
"--enable-shared"
|
||||
"--enable-sharedlib"
|
||||
"--with-pm=no"
|
||||
"--with-device=ch4:ofi"
|
||||
"--with-pmi=pmix"
|
||||
"--with-pmix=${pmixAll}"
|
||||
"--with-libfabric=${libfabric}"
|
||||
"--enable-g=log"
|
||||
] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [
|
||||
"FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300
|
||||
"FCFLAGS=-fallow-argument-mismatch"
|
||||
];
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
meta = old.meta // {
|
||||
maintainers = old.meta.maintainers ++ (with lib.maintainers.bsc; [ rarias ]);
|
||||
};
|
||||
})
|
||||
32
pkgs/nanos6/0001-Add-missing-cstdint-include.patch
Normal file
32
pkgs/nanos6/0001-Add-missing-cstdint-include.patch
Normal file
@@ -0,0 +1,32 @@
|
||||
From 6fc5bef066ac011d6b15a7c090f4498b0b730818 Mon Sep 17 00:00:00 2001
|
||||
From: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
|
||||
Date: Fri, 12 Apr 2024 14:44:43 +0200
|
||||
Subject: [PATCH] Add missing cstdint include
|
||||
|
||||
---
|
||||
src/dependencies/DataTrackingSupport.hpp | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/dependencies/DataTrackingSupport.hpp b/src/dependencies/DataTrackingSupport.hpp
|
||||
index 56226085..cdfd5e1c 100644
|
||||
--- a/src/dependencies/DataTrackingSupport.hpp
|
||||
+++ b/src/dependencies/DataTrackingSupport.hpp
|
||||
@@ -1,13 +1,14 @@
|
||||
/*
|
||||
This file is part of Nanos6 and is licensed under the terms contained in the COPYING file.
|
||||
|
||||
- Copyright (C) 2020 Barcelona Supercomputing Center (BSC)
|
||||
+ Copyright (C) 2020-2024 Barcelona Supercomputing Center (BSC)
|
||||
*/
|
||||
|
||||
#ifndef DATA_TRACKING_SUPPORT_HPP
|
||||
#define DATA_TRACKING_SUPPORT_HPP
|
||||
|
||||
#include "support/config/ConfigVariable.hpp"
|
||||
+#include <cstdint>
|
||||
|
||||
class Task;
|
||||
|
||||
--
|
||||
2.44.0
|
||||
|
||||
130
pkgs/nanos6/default.nix
Normal file
130
pkgs/nanos6/default.nix
Normal file
@@ -0,0 +1,130 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, automake
|
||||
, autoconf
|
||||
, libtool
|
||||
, pkg-config
|
||||
, numactl
|
||||
, hwloc
|
||||
, papi
|
||||
, boost
|
||||
, ovni
|
||||
, enableDebug ? false
|
||||
, enableJemalloc ? true
|
||||
, jemallocNanos6 ? null
|
||||
, cachelineBytes ? 64
|
||||
, enableGlibcxxDebug ? false
|
||||
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
|
||||
, useGit ? false
|
||||
, gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6"
|
||||
, gitBranch ? "master"
|
||||
, gitCommit ? "f82762b66c82b5174a8eaad33f6c2f335ac759b4"
|
||||
}:
|
||||
|
||||
assert enableJemalloc -> (jemallocNanos6 != null);
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
release = rec {
|
||||
version = "4.3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "nanos6";
|
||||
rev = "version-${version}";
|
||||
hash = "sha256-/c6WiKBsAo/01uvMRmjv0PMucbrgvaGmbxlPE6q+dfE=";
|
||||
};
|
||||
};
|
||||
|
||||
git = rec {
|
||||
version = src.shortRev;
|
||||
src = builtins.fetchGit {
|
||||
url = gitUrl;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
};
|
||||
|
||||
source = if (useGit) then git else release;
|
||||
|
||||
isCross = stdenv.hostPlatform != stdenv.buildPlatform;
|
||||
in
|
||||
stdenv.mkDerivation (source // {
|
||||
pname = "nanos6";
|
||||
|
||||
prePatch = ''
|
||||
patchShebangs scripts/generate_config.sh
|
||||
patchShebangs autogen.sh
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure = ''
|
||||
export CACHELINE_WIDTH=${toString cachelineBytes}
|
||||
./autogen.sh
|
||||
'' + lib.optionalString (useGit) ''
|
||||
export NANOS6_GIT_VERSION=${gitCommit}
|
||||
export NANOS6_GIT_BRANCH=${gitBranch}
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-hwloc=${hwloc}"
|
||||
"--disable-all-instrumentations"
|
||||
"--enable-ovni-instrumentation"
|
||||
"--with-ovni=${ovni}"
|
||||
"--with-boost=${boost.dev}"
|
||||
] ++
|
||||
(optional enableJemalloc "--with-jemalloc=${jemallocNanos6}") ++
|
||||
(optional enableGlibcxxDebug "CXXFLAGS=-D_GLIBCXX_DEBUG") ++
|
||||
# Most nanos6 api symbols are resolved at runtime, so prefer
|
||||
# ifunc by default
|
||||
(optional isCross "--with-symbol-resolution=ifunc");
|
||||
|
||||
postConfigure = lib.optionalString (!enableDebug) ''
|
||||
# Disable debug
|
||||
sed -i 's/\([a-zA-Z0-9_]*nanos6_debug[a-zA-Z0-9_]*\)\s*[+]\?=.*/\1 =/g' Makefile.am
|
||||
'';
|
||||
|
||||
# The "bindnow" flags are incompatible with ifunc resolution mechanism. We
|
||||
# disable all by default, which includes bindnow.
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
# Keep debug symbols in the debug variant of the library
|
||||
dontStrip = enableDebug;
|
||||
separateDebugInfo = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
libtool
|
||||
pkg-config
|
||||
|
||||
# TODO: papi_version is needed for configure:
|
||||
# ./configure: line 27378: papi_version: command not found
|
||||
# This probably breaks cross-compilation
|
||||
] ++ lib.optionals enablePapi [ papi ];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
numactl
|
||||
hwloc
|
||||
ovni
|
||||
] ++ lib.optionals enablePapi [ papi ];
|
||||
|
||||
# Create a script that sets NANOS6_HOME
|
||||
postInstall = ''
|
||||
mkdir -p $out/nix-support
|
||||
echo "export NANOS6_HOME=$out" >> $out/nix-support/setup-hook
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/nanos6";
|
||||
description = "Nanos6 runtime for OmpSs-2" +
|
||||
optionalString (enableDebug) " (with debug symbols)";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
})
|
||||
13
pkgs/nanos6/jemalloc.nix
Normal file
13
pkgs/nanos6/jemalloc.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ jemalloc, lib }:
|
||||
|
||||
jemalloc.overrideAttrs (old: {
|
||||
configureFlags = old.configureFlags ++ [
|
||||
"--with-jemalloc-prefix=nanos6_je_"
|
||||
"--enable-stats"
|
||||
];
|
||||
hardeningDisable = [ "all" ];
|
||||
meta = old.meta // {
|
||||
description = old.meta.description + " (for Nanos6)";
|
||||
maintainers = (old.meta.maintainers or []) ++ (with lib.maintainers.bsc; [ rarias ]);
|
||||
};
|
||||
})
|
||||
100
pkgs/nix-wrap/default.nix
Normal file
100
pkgs/nix-wrap/default.nix
Normal file
@@ -0,0 +1,100 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, bashInteractive
|
||||
, busybox
|
||||
, nix
|
||||
, writeText
|
||||
, pkgsStatic
|
||||
}:
|
||||
|
||||
let
|
||||
bubblewrap = pkgsStatic.bubblewrap;
|
||||
nixPrefix = "/gpfs/projects/bsc15/nix";
|
||||
nixConfDir = "share";
|
||||
nix_wrap_sh = writeText "nix-wrap.sh" ''
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
busybox_bin="${nixPrefix}${busybox}/bin"
|
||||
bubblewrap_bin="${nixPrefix}/${bubblewrap}/bin"
|
||||
|
||||
bashInteractive_bin="${bashInteractive}/bin"
|
||||
nix_bin="${nix}/bin"
|
||||
|
||||
rootdir=$(mktemp -d)
|
||||
tmpdir=$(mktemp -d)
|
||||
|
||||
args=(
|
||||
--bind "$rootdir/" /
|
||||
--bind "${nixPrefix}/nix" /nix
|
||||
--bind "$busybox_bin" /bin
|
||||
--dev-bind /dev /dev
|
||||
--bind /boot /boot
|
||||
--proc /proc
|
||||
--bind /run /run
|
||||
--bind /sys /sys
|
||||
--bind "$tmpdir" /tmp
|
||||
--bind "$PWD" "$PWD"
|
||||
--bind /etc/host.conf /etc/host.conf
|
||||
--bind /etc/hosts /etc/hosts
|
||||
--bind /etc/networks /etc/networks
|
||||
--bind /etc/passwd /etc/passwd
|
||||
--bind /etc/group /etc/group
|
||||
--bind /etc/nsswitch.conf /etc/nsswitch.conf
|
||||
--bind /etc/resolv.conf /etc/resolv.conf
|
||||
)
|
||||
|
||||
export PATH="/bin:$bashInteractive_bin"
|
||||
export PATH="$nix_bin:$PATH"
|
||||
export TMPDIR=/tmp
|
||||
export PS1="[nix-wrap] \u@\h \W $ "
|
||||
export NIX_CONF_DIR=@out@/share
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
"$bubblewrap_bin/bwrap" ''${args[@]} /bin/sh
|
||||
else
|
||||
"$bubblewrap_bin/bwrap" ''${args[@]} "''${@}"
|
||||
fi
|
||||
|
||||
'';
|
||||
nix_conf = writeText "nix.conf" ''
|
||||
experimental-features = nix-command flakes
|
||||
sandbox-fallback = false
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "nix-wrap";
|
||||
buildInputs = [
|
||||
bashInteractive
|
||||
busybox
|
||||
nix
|
||||
];
|
||||
src = null;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
dontPatchShebangs = true;
|
||||
NIX_DEBUG = 0;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
substituteAll ${nix_wrap_sh} $out/bin/nix-wrap
|
||||
chmod +x $out/bin/nix-wrap
|
||||
|
||||
mkdir -p $out/share
|
||||
cp ${nix_conf} $out/share/nix.conf
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = null;
|
||||
description = "nix bubblewrap wrapper";
|
||||
maintainers = [ ];
|
||||
broken = true;
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
}
|
||||
|
||||
26
pkgs/nixtools/default.nix
Normal file
26
pkgs/nixtools/default.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, glibc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nixtools";
|
||||
version = "${src.shortRev}";
|
||||
src = builtins.fetchGit {
|
||||
url = "ssh://git@bscpm04.bsc.es/rarias/nixtools";
|
||||
ref = "master";
|
||||
rev = "a103e392048ace3ed88ce74648b32c9e6ed094da";
|
||||
};
|
||||
buildInputs = [ glibc.static ];
|
||||
makeFlags = [ "DESTDIR=$(out)" ];
|
||||
preBuild = "env";
|
||||
dontPatchShebangs = true;
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.pm.bsc.es/rarias/nixtools";
|
||||
description = "nix bubblewrap wrapper";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
92
pkgs/nodes/default.nix
Normal file
92
pkgs/nodes/default.nix
Normal file
@@ -0,0 +1,92 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, perl
|
||||
, numactl
|
||||
, hwloc
|
||||
, boost
|
||||
, autoreconfHook
|
||||
, ovni
|
||||
, nosv
|
||||
, clangOmpss2
|
||||
, useGit ? false
|
||||
, gitUrl ? "ssh://git@gitlab-internal.bsc.es/nos-v/nodes.git"
|
||||
, gitBranch ? "master"
|
||||
, gitCommit ? "6002ec9ae6eb876d962cc34366952a3b26599ba6"
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
release = rec {
|
||||
version = "1.3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "nodes";
|
||||
rev = "version-${version}";
|
||||
hash = "sha256-cFb9pxcjtkMmH0CsGgUO9LTdXDNh7MCqicgGWawLrsU=";
|
||||
};
|
||||
};
|
||||
|
||||
git = rec {
|
||||
version = src.shortRev;
|
||||
src = builtins.fetchGit {
|
||||
url = gitUrl;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
};
|
||||
|
||||
source = if (useGit) then git else release;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nodes";
|
||||
inherit (source) src version;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
dontStrip = true;
|
||||
separateDebugInfo = true;
|
||||
|
||||
configureFlags = [
|
||||
"--with-nosv=${nosv}"
|
||||
"--with-ovni=${ovni}"
|
||||
] ++ lib.optionals doCheck [
|
||||
"--with-nodes-clang=${clangOmpss2}"
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
nativeCheckInputs = [
|
||||
clangOmpss2
|
||||
];
|
||||
|
||||
# The "bindnow" flags are incompatible with ifunc resolution mechanism. We
|
||||
# disable all by default, which includes bindnow.
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
numactl
|
||||
hwloc
|
||||
nosv
|
||||
ovni
|
||||
];
|
||||
|
||||
passthru = {
|
||||
inherit nosv;
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.bsc.es/nos-v/nodes";
|
||||
description = "Runtime library designed to work on top of the nOS-V runtime";
|
||||
maintainers = with lib.maintainers.bsc; [ abonerib rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
70
pkgs/nosv/default.nix
Normal file
70
pkgs/nosv/default.nix
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, autoreconfHook
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, numactl
|
||||
, hwloc
|
||||
, papi
|
||||
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
|
||||
, cacheline ? 64 # bits
|
||||
, ovni ? null
|
||||
, useGit ? false
|
||||
, gitUrl ? "git@gitlab-internal.bsc.es:nos-v/nos-v.git"
|
||||
, gitBranch ? "master"
|
||||
, gitCommit ? "9f47063873c3aa9d6a47482a82c5000a8c813dd8"
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
release = rec {
|
||||
version = "3.2.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "nos-v";
|
||||
rev = "${version}";
|
||||
hash = "sha256-yaz92426EM8trdkBJlISmAoG9KJCDTvoAW/HKrasvOw=";
|
||||
};
|
||||
};
|
||||
|
||||
git = rec {
|
||||
version = src.shortRev;
|
||||
src = builtins.fetchGit {
|
||||
url = gitUrl;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
};
|
||||
|
||||
source = if (useGit) then git else release;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nosv";
|
||||
inherit (source) src version;
|
||||
hardeningDisable = [ "all" ];
|
||||
dontStrip = true;
|
||||
separateDebugInfo = true;
|
||||
configureFlags = [
|
||||
"--with-ovni=${ovni}"
|
||||
"CACHELINE_WIDTH=${toString cacheline}"
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = [
|
||||
numactl
|
||||
hwloc
|
||||
ovni
|
||||
] ++ lib.optionals enablePapi [ papi ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.bsc.es/nos-v/nos-v";
|
||||
description = "Tasking library enables the co-execution of multiple applications with system-wide scheduling and a centralized management of resources";
|
||||
maintainers = with lib.maintainers.bsc; [ abonerib rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
48
pkgs/osu/default.nix
Normal file
48
pkgs/osu/default.nix
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
stdenv
|
||||
, fetchurl
|
||||
, mpi
|
||||
, lib
|
||||
, symlinkJoin
|
||||
}:
|
||||
|
||||
let
|
||||
mpiAll = symlinkJoin {
|
||||
name = "mpi-all";
|
||||
paths = [ mpi.all ];
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "7.1-1";
|
||||
name = "osu-micro-benchmarks-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-${version}.tar.gz";
|
||||
sha256 = "sha256-hfTdi+HfMSVeIyhSdprluC6HpfsUvi+Ouhrp3o/+ORo=";
|
||||
};
|
||||
|
||||
doCheck = true;
|
||||
enableParallelBuilding = true;
|
||||
nativeBuildInputs = [ mpiAll ];
|
||||
buildInputs = [ mpiAll ];
|
||||
hardeningDisable = [ "all" ];
|
||||
configureFlags = [
|
||||
"CC=mpicc"
|
||||
"CXX=mpicxx"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/bin
|
||||
for f in $(find $out -executable -type f); do
|
||||
ln -s "$f" $out/bin/$(basename "$f")
|
||||
done
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "OSU Micro-Benchmarks";
|
||||
homepage = "http://mvapich.cse.ohio-state.edu/benchmarks/";
|
||||
maintainers = [ ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
final: prev:
|
||||
{
|
||||
# Set MPICH as default
|
||||
mpi = final.mpich;
|
||||
|
||||
# Configure the network for MPICH
|
||||
mpich = with final; let
|
||||
# pmix comes with the libraries in .out and headers in .dev
|
||||
pmixAll = symlinkJoin {
|
||||
name = "pmix-all";
|
||||
paths = [ pmix.dev pmix.out ];
|
||||
};
|
||||
in prev.mpich.overrideAttrs (old: {
|
||||
buildInput = old.buildInputs ++ [
|
||||
libfabric
|
||||
pmixAll
|
||||
];
|
||||
configureFlags = [
|
||||
"--enable-shared"
|
||||
"--enable-sharedlib"
|
||||
"--with-pm=no"
|
||||
"--with-device=ch4:ofi"
|
||||
"--with-pmi=pmix"
|
||||
"--with-pmix=${pmixAll}"
|
||||
"--with-libfabric=${libfabric}"
|
||||
"--enable-g=log"
|
||||
] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [
|
||||
"FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300
|
||||
"FCFLAGS=-fallow-argument-mismatch"
|
||||
];
|
||||
});
|
||||
|
||||
slurm = prev.slurm.overrideAttrs (old: {
|
||||
patches = (old.patches or []) ++ [
|
||||
# See https://bugs.schedmd.com/show_bug.cgi?id=19324
|
||||
./slurm-rank-expansion.patch
|
||||
];
|
||||
# Install also the pam_slurm_adopt library to restrict users from accessing
|
||||
# nodes with no job allocated.
|
||||
postBuild = (old.postBuild or "") + ''
|
||||
pushd contribs/pam_slurm_adopt
|
||||
make "PAM_DIR=$out/lib/security"
|
||||
popd
|
||||
'';
|
||||
postInstall = (old.postInstall or "") + ''
|
||||
pushd contribs/pam_slurm_adopt
|
||||
make "PAM_DIR=$out/lib/security" install
|
||||
popd
|
||||
'';
|
||||
});
|
||||
|
||||
prometheus-slurm-exporter = prev.callPackage ./slurm-exporter.nix { };
|
||||
meteocat-exporter = prev.callPackage ./meteocat-exporter/default.nix { };
|
||||
upc-qaire-exporter = prev.callPackage ./upc-qaire-exporter/default.nix { };
|
||||
cudainfo = prev.callPackage ./cudainfo/default.nix { };
|
||||
|
||||
amd-uprof = prev.callPackage ./amd-uprof/default.nix { };
|
||||
|
||||
# FIXME: Extend this to all linuxPackages variants. Open problem, see:
|
||||
# https://discourse.nixos.org/t/whats-the-right-way-to-make-a-custom-kernel-module-available/4636
|
||||
linuxPackages = prev.linuxPackages.extend (_final: _prev: {
|
||||
amd-uprof-driver = _prev.callPackage ./amd-uprof/driver.nix { };
|
||||
});
|
||||
linuxPackages_latest = prev.linuxPackages_latest.extend(_final: _prev: {
|
||||
amd-uprof-driver = _prev.callPackage ./amd-uprof/driver.nix { };
|
||||
});
|
||||
}
|
||||
67
pkgs/ovni/default.nix
Normal file
67
pkgs/ovni/default.nix
Normal file
@@ -0,0 +1,67 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, cmake
|
||||
, mpi
|
||||
, fetchFromGitHub
|
||||
, useGit ? false
|
||||
, gitBranch ? "master"
|
||||
, gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git"
|
||||
, gitCommit ? "e4f62382076f0cf0b1d08175cf57cc0bc51abc61"
|
||||
, enableDebug ? false
|
||||
# Only enable MPI if the build is native (fails on cross-compilation)
|
||||
, useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform)
|
||||
}:
|
||||
|
||||
let
|
||||
release = rec {
|
||||
version = "1.12.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "ovni";
|
||||
rev = "${version}";
|
||||
hash = "sha256-H04JvsVKrdqr3ON7JhU0g17jjlg/jzQ7eTfx9vUNd3E=";
|
||||
} // { shortRev = "a73afcf"; };
|
||||
};
|
||||
|
||||
git = rec {
|
||||
version = src.shortRev;
|
||||
src = builtins.fetchGit {
|
||||
url = gitUrl;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
};
|
||||
|
||||
source = if (useGit) then git else release;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ovni";
|
||||
inherit (source) src version;
|
||||
dontStrip = true;
|
||||
separateDebugInfo = true;
|
||||
postPatch = ''
|
||||
patchShebangs --build test/
|
||||
'';
|
||||
nativeBuildInputs = [ cmake ] ++ lib.optionals (useMpi) [ mpi ];
|
||||
buildInputs = lib.optionals (useMpi) [ mpi ];
|
||||
cmakeBuildType = if (enableDebug) then "Debug" else "Release";
|
||||
cmakeFlags = [
|
||||
"-DOVNI_GIT_COMMIT=${src.shortRev}"
|
||||
] ++ lib.optionals (!useMpi) [ "-DUSE_MPI=OFF" ];
|
||||
preCheck = ''
|
||||
export CTEST_OUTPUT_ON_FAILURE=1
|
||||
'';
|
||||
doCheck = true;
|
||||
checkTarget = "test";
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://ovni.readthedocs.io";
|
||||
description = "Obtuse but Versatile Nanoscale Instrumentation";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
cross = true;
|
||||
};
|
||||
}
|
||||
22
pkgs/parastation/pscom.nix
Normal file
22
pkgs/parastation/pscom.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{ stdenv
|
||||
, popt
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pscom";
|
||||
version = "5.4.6-1";
|
||||
|
||||
src = builtins.fetchTarball {
|
||||
url = "https://github.com/ParaStation/${pname}/archive/${version}.tar.gz";
|
||||
sha256 = "1n9ic0j94iy09j287cfpfy0dd2bk17qakf1ml669jkibxbc5fqk8";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs ./
|
||||
'';
|
||||
|
||||
buildInputs = [ popt ];
|
||||
preferLocalBuild = true;
|
||||
|
||||
enableParallelBuilding = false;
|
||||
}
|
||||
33
pkgs/parastation/psmpi.nix
Normal file
33
pkgs/parastation/psmpi.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{ stdenv
|
||||
, pscom
|
||||
, perl
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "psmpi";
|
||||
version = "5.4.6-1";
|
||||
|
||||
src = builtins.fetchTarball {
|
||||
url = "https://github.com/ParaStation/${pname}/archive/${version}.tar.gz";
|
||||
sha256 = "1kr624216fz8pmfgbwdb3ks77pr6zhrssmn16j3pwaq5mkf3i9wc";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs ./
|
||||
echo "${version}" > VERSION
|
||||
'';
|
||||
|
||||
preferLocalBuild = true;
|
||||
buildInputs = [ pscom ];
|
||||
nativeBuildInputs = [ perl ];
|
||||
#makeFlags = [ "V=1" ];
|
||||
|
||||
configureFlags = [
|
||||
"--with-confset=default"
|
||||
"--with-threading"
|
||||
"--disable-fortran"
|
||||
"MPICH2_LDFLAGS=-lpsco"
|
||||
];
|
||||
|
||||
enableParallelBuilding = false;
|
||||
}
|
||||
106
pkgs/paraver/default.nix
Normal file
106
pkgs/paraver/default.nix
Normal file
@@ -0,0 +1,106 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, boost
|
||||
, libxml2
|
||||
, xml2
|
||||
, wxGTK32
|
||||
, autoconf
|
||||
, automake
|
||||
, paraverKernel
|
||||
, openssl
|
||||
, glibcLocales
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
let
|
||||
wx = wxGTK32;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wxparaver";
|
||||
version = "4.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-performance-tools";
|
||||
repo = "wxparaver";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-YsO5gsuEFQdki3lQudEqgo5WXOt/fPdvNw5OxZQ86Zo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./do-not-steal-focus-on-redraw.patch
|
||||
|
||||
# Fix for boost >=1.87 (thanks to gamezelda)
|
||||
# https://aur.archlinux.org/cgit/aur.git/commit/?h=wxparaver&id=b0dcd08c472536e0a1a3cc1dfbc4c77d9f5e0d47
|
||||
./fix-boost-87.patch
|
||||
];
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
# Fix the PARAVER_HOME variable
|
||||
postPatch = ''
|
||||
sed -i 's@^PARAVER_HOME=.*$@PARAVER_HOME='$out'@g' docs/wxparaver
|
||||
sed -i '1aexport LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"' docs/wxparaver
|
||||
'';
|
||||
|
||||
dontStrip = true;
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure = ''
|
||||
export CFLAGS="-O3"
|
||||
export CXXFLAGS="-O3"
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-boost=${boost}"
|
||||
"--with-wx-config=${wx}/bin/wx-config"
|
||||
"--with-paraver=${paraverKernel}"
|
||||
"--with-openssl=${openssl.dev}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
autoreconfHook
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
libxml2.dev
|
||||
xml2
|
||||
wx
|
||||
paraverKernel
|
||||
openssl.dev
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/include
|
||||
mkdir -p $out/lib/paraver-kernel
|
||||
mkdir -p $out/share/filters-config
|
||||
cp -p ${paraverKernel}/bin/* $out/bin
|
||||
# cp -p ${paraverKernel}/include/* $out/include
|
||||
cp -a ${paraverKernel}/lib/paraver-kernel $out/lib/paraver-kernel
|
||||
cp -p ${paraverKernel}/share/filters-config/* $out/share/filters-config
|
||||
|
||||
# Move man files to proper location
|
||||
mkdir -p $out/share/man
|
||||
mv $out/share/doc/wxparaver_help_contents/man $out/share/man/man1
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://tools.bsc.es/paraver";
|
||||
downloadPage = "https://github.com/bsc-performance-tools/wxparaver";
|
||||
description = "Performance analyzer based on event traces";
|
||||
longDescription = ''
|
||||
Trace-based visualization and analysis tool designed to study quantitative
|
||||
detailed metrics and obtain qualitative knowledge of the performance of
|
||||
applications, libraries, processors and whole architectures
|
||||
'';
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.lgpl21Plus;
|
||||
};
|
||||
}
|
||||
26
pkgs/paraver/do-not-steal-focus-on-redraw.patch
Normal file
26
pkgs/paraver/do-not-steal-focus-on-redraw.patch
Normal file
@@ -0,0 +1,26 @@
|
||||
From 2b185e1b5ce52808b3026334851dbcd5a640ed4d Mon Sep 17 00:00:00 2001
|
||||
From: aleixbonerib <aleix.boneribo@bsc.es>
|
||||
Date: Mon, 10 Jun 2024 20:59:45 +0200
|
||||
Subject: [PATCH] fix: do not set focus on redraw
|
||||
|
||||
Some wm can change the window size without focusing. Right now, when the
|
||||
plot is resized it takes back focus.
|
||||
---
|
||||
src/gtimeline.cpp | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/src/gtimeline.cpp b/src/gtimeline.cpp
|
||||
index 23ebef2..a896066 100644
|
||||
--- a/src/gtimeline.cpp
|
||||
+++ b/src/gtimeline.cpp
|
||||
@@ -899,7 +899,6 @@ void gTimeline::redraw()
|
||||
|
||||
drawZone->Refresh();
|
||||
|
||||
- SetFocus();
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.44.1
|
||||
|
||||
120
pkgs/paraver/dont-expand-colors.patch
Normal file
120
pkgs/paraver/dont-expand-colors.patch
Normal file
@@ -0,0 +1,120 @@
|
||||
commit c2fa29f7f1bbde86f41417b198610253fff93667
|
||||
Author: Rodrigo Arias <rodarima@gmail.com>
|
||||
Date: Thu Mar 2 13:14:56 2023 +0100
|
||||
|
||||
Add the PCF option DONT_EXPAND_COLORS
|
||||
|
||||
Allows the user to specify the complete palette in the PCF, preventing
|
||||
Paraver from expanding the colors.
|
||||
|
||||
diff --git a/api/semanticcolor.cpp b/api/semanticcolor.cpp
|
||||
index 9f86960..22859eb 100644
|
||||
--- a/api/semanticcolor.cpp
|
||||
+++ b/api/semanticcolor.cpp
|
||||
@@ -295,8 +295,9 @@ rgb SemanticColor::getColor( PRV_UINT32 pos ) const
|
||||
{
|
||||
if( pos == 0 && ParaverConfig::getInstance()->getColorsTimelineUseZero() )
|
||||
return ParaverConfig::getInstance()->getColorsTimelineColorZero();
|
||||
- pos = pos % colors.size();
|
||||
- return colors[ pos ];
|
||||
+ // Skip the black at 0
|
||||
+ pos = pos % (colors.size() - 1);
|
||||
+ return colors[ pos + 1 ];
|
||||
}
|
||||
|
||||
void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
|
||||
@@ -314,6 +315,12 @@ void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
|
||||
colors[ whichPos ] = whichColor;
|
||||
}
|
||||
|
||||
+void SemanticColor::cutAfter( PRV_UINT32 pos )
|
||||
+{
|
||||
+ if ( pos < colors.size() )
|
||||
+ colors.erase( colors.begin() + pos, colors.end() );
|
||||
+}
|
||||
+
|
||||
void SemanticColor::setCustomColor( TSemanticValue whichValue, rgb color )
|
||||
{
|
||||
customPalette[ whichValue ] = color;
|
||||
diff --git a/api/semanticcolor.h b/api/semanticcolor.h
|
||||
index a079556..bddf3d8 100644
|
||||
--- a/api/semanticcolor.h
|
||||
+++ b/api/semanticcolor.h
|
||||
@@ -114,6 +114,7 @@ class SemanticColor
|
||||
// Code Color methods
|
||||
PRV_UINT32 getNumColors() const;
|
||||
void setColor( PRV_UINT32 pos, rgb color );
|
||||
+ void cutAfter( PRV_UINT32 pos );
|
||||
void setCustomColor( TSemanticValue whichValue, rgb color );
|
||||
bool existCustomColors() const;
|
||||
const std::map<TSemanticValue, rgb>& getCustomPalette() const;
|
||||
diff --git a/api/trace.cpp b/api/trace.cpp
|
||||
index b0d2050..ee2ab69 100644
|
||||
--- a/api/trace.cpp
|
||||
+++ b/api/trace.cpp
|
||||
@@ -461,12 +461,21 @@ void TraceProxy::parsePCF( const string& whichFile )
|
||||
|
||||
rgb tmpColor;
|
||||
const std::map< uint32_t, PCFFileParser<>::rgb >& semanticColors = pcfParser.getSemanticColors();
|
||||
+ uint32_t maxValue = 0;
|
||||
+
|
||||
for ( auto it : semanticColors )
|
||||
{
|
||||
std::tie( tmpColor.red, tmpColor.green, tmpColor.blue ) = it.second;
|
||||
mySemanticColor.setColor( it.first, tmpColor );
|
||||
+ if (it.first > maxValue)
|
||||
+ maxValue = it.first;
|
||||
}
|
||||
|
||||
+ // Cut the palette after the highest defined value, so there are no
|
||||
+ // extra expanded values
|
||||
+ if ( !pcfParser.expandColors )
|
||||
+ mySemanticColor.cutAfter(maxValue);
|
||||
+
|
||||
myEventLabels = EventLabels( pcfParser );
|
||||
myStateLabels = StateLabels( pcfParser );
|
||||
|
||||
diff --git a/utils/traceparser/pcffileparser.cpp b/utils/traceparser/pcffileparser.cpp
|
||||
index 9245955..3a1aecb 100644
|
||||
--- a/utils/traceparser/pcffileparser.cpp
|
||||
+++ b/utils/traceparser/pcffileparser.cpp
|
||||
@@ -286,6 +286,7 @@ constexpr char PCF_LABEL_SPEED[] = "SPEED";
|
||||
constexpr char PCF_LABEL_FLAG_ICONS[] = "FLAG_ICONS";
|
||||
constexpr char PCF_LABEL_NUM_OF_STATE_COLORS[] = "NUM_OF_STATE_COLORS";
|
||||
constexpr char PCF_LABEL_YMAX_SCALE[] = "YMAX_SCALE";
|
||||
+constexpr char PCF_LABEL_DONT_EXPAND_COLORS[] = "DONT_EXPAND_COLORS";
|
||||
|
||||
template< typename dummyParser = std::nullptr_t >
|
||||
class DefaultOptionsParser : public PCFFileParser<>::SectionParser<>
|
||||
@@ -293,12 +294,13 @@ class DefaultOptionsParser : public PCFFileParser<>::SectionParser<>
|
||||
public:
|
||||
DefaultOptionsParser( PCFFileParser<> *whichMainParser ) : PCFFileParser<>::SectionParser<>( whichMainParser )
|
||||
{
|
||||
- parameterSetter[ PCF_LABEL_LEVEL ] = [this]( std::string line ) { mainParser->level = line; };
|
||||
- parameterSetter[ PCF_LABEL_UNITS ] = [this]( std::string line ) { mainParser->units = line; };
|
||||
- parameterSetter[ PCF_LABEL_LOOK_BACK ] = [this]( std::string line ) { mainParser->lookBack = line; };
|
||||
- parameterSetter[ PCF_LABEL_SPEED ] = [this]( std::string line ) { mainParser->speed = line; };
|
||||
- parameterSetter[ PCF_LABEL_FLAG_ICONS ] = [this]( std::string line ) { mainParser->flagIcons = line; };
|
||||
- parameterSetter[ PCF_LABEL_YMAX_SCALE ] = [this]( std::string line ) { mainParser->ymaxScale = line; };
|
||||
+ parameterSetter[ PCF_LABEL_LEVEL ] = [this]( std::string line ) { mainParser->level = line; };
|
||||
+ parameterSetter[ PCF_LABEL_UNITS ] = [this]( std::string line ) { mainParser->units = line; };
|
||||
+ parameterSetter[ PCF_LABEL_LOOK_BACK ] = [this]( std::string line ) { mainParser->lookBack = line; };
|
||||
+ parameterSetter[ PCF_LABEL_SPEED ] = [this]( std::string line ) { mainParser->speed = line; };
|
||||
+ parameterSetter[ PCF_LABEL_FLAG_ICONS ] = [this]( std::string line ) { mainParser->flagIcons = line; };
|
||||
+ parameterSetter[ PCF_LABEL_YMAX_SCALE ] = [this]( std::string line ) { mainParser->ymaxScale = line; };
|
||||
+ parameterSetter[ PCF_LABEL_DONT_EXPAND_COLORS ] = [this]( std::string line ) { mainParser->expandColors = false; };
|
||||
}
|
||||
|
||||
virtual ~DefaultOptionsParser() = default;
|
||||
diff --git a/utils/traceparser/pcffileparser.h b/utils/traceparser/pcffileparser.h
|
||||
index 5fe2634..c12ecc8 100644
|
||||
--- a/utils/traceparser/pcffileparser.h
|
||||
+++ b/utils/traceparser/pcffileparser.h
|
||||
@@ -100,6 +100,7 @@ class PCFFileParser
|
||||
void setEventLabel( TEventType eventType, const std::string& label );
|
||||
void setEventValues( TEventType eventType, const std::map< TEventValue, std::string >& values );
|
||||
void setEventValueLabel( TEventType eventType, TEventValue eventValue, const std::string& label );
|
||||
+ bool expandColors = true;
|
||||
|
||||
private:
|
||||
struct EventTypeData
|
||||
87
pkgs/paraver/fix-boost-87.patch
Normal file
87
pkgs/paraver/fix-boost-87.patch
Normal file
@@ -0,0 +1,87 @@
|
||||
From 7ecd888e2ebb9e8c5582851d3c50bff61022708e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <joanbrugueram@gmail.com>
|
||||
Date: Sat, 29 Mar 2025 18:14:25 +0000
|
||||
Subject: [PATCH] tutorialsdownload: Fix Boost ASIO 1.87.0 removals
|
||||
|
||||
---
|
||||
src/tutorialsdownload.cpp | 25 ++++++++++++-------------
|
||||
1 file changed, 12 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/src/tutorialsdownload.cpp b/src/tutorialsdownload.cpp
|
||||
index a1921fd..6ce9dc2 100644
|
||||
--- a/src/tutorialsdownload.cpp
|
||||
+++ b/src/tutorialsdownload.cpp
|
||||
@@ -121,13 +121,13 @@ void TutorialsProgress::updateInstall( int whichValue )
|
||||
class client
|
||||
{
|
||||
public:
|
||||
- client( boost::asio::io_service& io_service,
|
||||
+ client( boost::asio::io_context& io_context,
|
||||
boost::asio::ssl::context& context,
|
||||
const std::string& server, const std::string& path,
|
||||
ofstream& storeFile,
|
||||
TutorialsProgress *progress )
|
||||
- : resolver_( io_service ),
|
||||
- socket_( io_service, context ),
|
||||
+ : resolver_( io_context ),
|
||||
+ socket_( io_context, context ),
|
||||
store_( storeFile ),
|
||||
progress_( progress )
|
||||
{
|
||||
@@ -143,8 +143,7 @@ class client
|
||||
|
||||
// Start an asynchronous resolve to translate the server and service names
|
||||
// into a list of endpoints.
|
||||
- tcp::resolver::query query( server, "https" );
|
||||
- resolver_.async_resolve( query,
|
||||
+ resolver_.async_resolve( server, "https",
|
||||
boost::bind( &client::handle_resolve,
|
||||
this,
|
||||
boost::asio::placeholders::error,
|
||||
@@ -154,7 +153,7 @@ class client
|
||||
private:
|
||||
|
||||
void handle_resolve( const boost::system::error_code& err,
|
||||
- tcp::resolver::iterator endpoint_iterator )
|
||||
+ const tcp::resolver::results_type& endpoints )
|
||||
{
|
||||
if ( !err )
|
||||
{
|
||||
@@ -162,7 +161,7 @@ class client
|
||||
socket_.set_verify_callback( boost::bind( &client::verify_certificate, this, _1, _2 ) );
|
||||
|
||||
boost::asio::async_connect( socket_.lowest_layer(),
|
||||
- endpoint_iterator,
|
||||
+ endpoints,
|
||||
boost::bind( &client::handle_connect,
|
||||
this,
|
||||
boost::asio::placeholders::error ) );
|
||||
@@ -536,9 +535,9 @@ bool TutorialsDownload::downloadTutorialsList() const
|
||||
boost::asio::ssl::context ctx( boost::asio::ssl::context::sslv23 );
|
||||
ctx.set_default_verify_paths();
|
||||
|
||||
- boost::asio::io_service io_service;
|
||||
- client c( io_service, ctx, server, path, storeFile, nullptr );
|
||||
- io_service.run();
|
||||
+ boost::asio::io_context io_context;
|
||||
+ client c( io_context, ctx, server, path, storeFile, nullptr );
|
||||
+ io_context.run();
|
||||
|
||||
doneDownload = true;
|
||||
}
|
||||
@@ -580,9 +579,9 @@ bool TutorialsDownload::download( const TutorialData& whichTutorial, string& tut
|
||||
boost::asio::ssl::context ctx( boost::asio::ssl::context::sslv23 );
|
||||
ctx.set_default_verify_paths();
|
||||
|
||||
- boost::asio::io_service io_service;
|
||||
- client c( io_service, ctx, std::string( server.mb_str() ), std::string( path.mb_str() ), storeFile, &progress );
|
||||
- io_service.run();
|
||||
+ boost::asio::io_context io_context;
|
||||
+ client c( io_context, ctx, std::string( server.mb_str() ), std::string( path.mb_str() ), storeFile, &progress );
|
||||
+ io_context.run();
|
||||
}
|
||||
catch ( ParaverKernelException& e )
|
||||
{
|
||||
--
|
||||
2.49.0
|
||||
|
||||
23
pkgs/paraver/fix-libxml2-deprecation.patch
Normal file
23
pkgs/paraver/fix-libxml2-deprecation.patch
Normal file
@@ -0,0 +1,23 @@
|
||||
commit 60aa3ffa05f6b40db191a880e9e622d608744c1f
|
||||
Author: Aleix Boné <aleix.boneribo@bsc.es>
|
||||
Date: Sun Jul 21 12:11:30 2025 +0200
|
||||
|
||||
fix libxml2 deprecated macro
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 7fe1876..3ce1091 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -46,7 +46,10 @@ AC_PROG_CPP
|
||||
AC_PROG_CXXCPP
|
||||
AC_PROG_SED
|
||||
|
||||
-AM_PATH_XML2
|
||||
+PKG_PROG_PKG_CONFIG
|
||||
+PKG_CHECK_MODULES([XML], [libxml-2.0])
|
||||
+
|
||||
+AC_SUBST(XML_CPPFLAGS, $XML_CFLAGS)
|
||||
|
||||
AX_BOOST_BASE(1.36)
|
||||
AX_BOOST_SERIALIZATION
|
||||
|
||||
70
pkgs/paraver/kernel.nix
Normal file
70
pkgs/paraver/kernel.nix
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, boost
|
||||
, libxml2
|
||||
, xml2
|
||||
, autoconf
|
||||
, automake
|
||||
, pkg-config
|
||||
, zlib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "paraver-kernel";
|
||||
version = "4.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-performance-tools";
|
||||
repo = "paraver-kernel";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Xs7g8ITZhPt00v7o2WlTddbou8C8Rc9kBMFpl2WsCS4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://github.com/bsc-performance-tools/paraver-kernel/pull/11
|
||||
# TODO: add this back if it's still relevant
|
||||
# ./dont-expand-colors.patch
|
||||
./fix-libxml2-deprecation.patch
|
||||
];
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
preConfigure = ''
|
||||
export CFLAGS="-O3 -DPARALLEL_ENABLED"
|
||||
export CXXFLAGS="-O3 -DPARALLEL_ENABLED"
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-boost=${boost}"
|
||||
"--enable-openmp"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
autoconf
|
||||
automake
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
libxml2.dev
|
||||
xml2
|
||||
zlib
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://tools.bsc.es/paraver";
|
||||
downloadPage = "https://github.com/bsc-performance-tools/paraver-kernel";
|
||||
description = "Kernel library used by wxparaver";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.lgpl21Plus;
|
||||
};
|
||||
}
|
||||
286
pkgs/paraver/mouse-label.patch
Normal file
286
pkgs/paraver/mouse-label.patch
Normal file
@@ -0,0 +1,286 @@
|
||||
--- a/src/wxparaver/src/gtimeline.cpp 2019-09-13 13:18:03.000000000 +0200
|
||||
+++ b/src/wxparaver/src/gtimeline.cpp 2020-11-30 13:18:50.121429888 +0100
|
||||
@@ -607,8 +607,8 @@
|
||||
// Paint blank image while redrawing
|
||||
wxClientDC dc( drawZone );
|
||||
#ifdef __WXGTK__
|
||||
- dc.DrawBitmap( bufferImage, 0, 0, false );
|
||||
- drawZone->Update();
|
||||
+// dc.DrawBitmap( bufferImage, 0, 0, false );
|
||||
+// drawZone->Update();
|
||||
#endif
|
||||
|
||||
if( !drawAxis( bufferDraw, selectedSet ) )
|
||||
@@ -1365,13 +1365,66 @@
|
||||
|
||||
void gTimeline::drawRowEvents( wxDC& eventdc, wxDC& eventmaskdc, TObjectOrder rowPos, hash_set< PRV_INT32 >& eventsToDraw )
|
||||
{
|
||||
+ int last_x = -100, x, xx;
|
||||
+ int i, neigh, max_x;
|
||||
+
|
||||
+ /* Keep track of other events in nearby pixels */
|
||||
+ max_x = myWindow->getWidth();
|
||||
+ int *table = new int[max_x];
|
||||
+
|
||||
+ for(i=0; i<max_x; i++)
|
||||
+ {
|
||||
+ table[i] = 0;
|
||||
+ }
|
||||
+
|
||||
for( hash_set< PRV_INT32 >::iterator it = eventsToDraw.begin(); it != eventsToDraw.end(); ++it )
|
||||
{
|
||||
+ /* Add a new event in the x position in the table */
|
||||
+ x = *it;
|
||||
+ assert(0 <= x);
|
||||
+ assert(x < max_x);
|
||||
+ table[*it]++;
|
||||
+ }
|
||||
+
|
||||
+ for( hash_set< PRV_INT32 >::iterator it = eventsToDraw.begin(); it != eventsToDraw.end(); ++it )
|
||||
+ {
|
||||
+ /*
|
||||
+ * Draws an event with 4 segments: AE, BF, CG and DH
|
||||
+ *
|
||||
+ * A B C D
|
||||
+ * * * * *
|
||||
+ * * * * *
|
||||
+ * * * * *
|
||||
+ * * F G H
|
||||
+ * *
|
||||
+ * *
|
||||
+ * E
|
||||
+ */
|
||||
+
|
||||
+ /* If the event is very close to another one, we paint it red, so we
|
||||
+ * now that we may need to zoom to see more closely how many events
|
||||
+ * are there. Otherwise we paint it green. */
|
||||
+ x = *it;
|
||||
+
|
||||
+ /* Count neighbour events */
|
||||
+ neigh = 0;
|
||||
+ for(xx=x-5; xx<=x+5; xx++)
|
||||
+ {
|
||||
+ if(0 <= xx && xx < max_x)
|
||||
+ neigh += table[xx];
|
||||
+ }
|
||||
+
|
||||
+ /* Paint the event red if there are more events close */
|
||||
+ if(neigh > 1)
|
||||
+ eventdc.SetPen( *wxRED_PEN );
|
||||
+ else
|
||||
+ eventdc.SetPen( *wxGREEN_PEN );
|
||||
+
|
||||
eventdc.DrawLine( *it, rowPos - 6, *it, rowPos );
|
||||
- eventdc.DrawLine( *it+1, rowPos - 6, *it+1, rowPos-3 );
|
||||
- eventdc.DrawLine( *it+2, rowPos - 6, *it+2, rowPos-3 );
|
||||
- eventdc.DrawLine( *it+3, rowPos - 6, *it+3, rowPos-3 );
|
||||
- eventdc.DrawLine( *it+4, rowPos - 6, *it+4, rowPos-3 );
|
||||
+// eventdc.DrawLine( *it+1, rowPos - 6, *it+1, rowPos-3 );
|
||||
+// eventdc.DrawLine( *it+2, rowPos - 6, *it+2, rowPos-3 );
|
||||
+// eventdc.DrawLine( *it+3, rowPos - 6, *it+3, rowPos-3 );
|
||||
+// eventdc.DrawLine( *it+4, rowPos - 6, *it+4, rowPos-3 );
|
||||
#ifndef __WXMAC__
|
||||
eventmaskdc.DrawLine( *it, rowPos - 6, *it, rowPos );
|
||||
eventmaskdc.DrawLine( *it+1, rowPos - 6, *it+1, rowPos-3 );
|
||||
@@ -1379,8 +1432,12 @@
|
||||
eventmaskdc.DrawLine( *it+3, rowPos - 6, *it+3, rowPos-3 );
|
||||
eventmaskdc.DrawLine( *it+4, rowPos - 6, *it+4, rowPos-3 );
|
||||
#endif
|
||||
+
|
||||
+ last_x = x;
|
||||
}
|
||||
|
||||
+ delete table;
|
||||
+
|
||||
}
|
||||
|
||||
|
||||
@@ -2427,7 +2484,7 @@
|
||||
|
||||
motionEvent = event;
|
||||
if( !event.ShiftDown() )
|
||||
- timerMotion->Start( 20, true );
|
||||
+ timerMotion->Start( 2, true );
|
||||
|
||||
wxMemoryDC dc( bufferImage );
|
||||
// PRV_UINT32 precision = ParaverConfig::getInstance()->getTimelinePrecision();
|
||||
@@ -4651,12 +4708,18 @@
|
||||
|
||||
void gTimeline::OnTimerMotion( wxTimerEvent& event )
|
||||
{
|
||||
+ int mx, my;
|
||||
+
|
||||
+ mx = motionEvent.GetX();
|
||||
+ my = motionEvent.GetY();
|
||||
+
|
||||
if( motionEvent.GetX() < objectAxisPos + 1 || motionEvent.GetX() > bufferImage.GetWidth() - drawBorder ||
|
||||
motionEvent.GetY() < drawBorder || motionEvent.GetY() > timeAxisPos - 1 )
|
||||
return;
|
||||
|
||||
wxMemoryDC dc( bufferImage );
|
||||
wxColour tmpColor;
|
||||
+ wxClientDC paintDC( drawZone );
|
||||
|
||||
wxString label;
|
||||
if( zooming || timing || wxGetApp().GetGlobalTiming() )
|
||||
@@ -4704,7 +4767,11 @@
|
||||
#endif
|
||||
|
||||
if( tmpColor == backgroundColour )
|
||||
+ {
|
||||
+ /* Just clean and exit */
|
||||
+ paintDC.DrawBitmap( drawImage, 0, 0 );
|
||||
return;
|
||||
+ }
|
||||
|
||||
rgb color = { (ParaverColor)tmpColor.Red(), (ParaverColor)tmpColor.Green(), (ParaverColor)tmpColor.Blue() };
|
||||
TSemanticValue firstValue, secondValue;
|
||||
@@ -4762,38 +4829,109 @@
|
||||
}
|
||||
}
|
||||
|
||||
-#ifndef __WXGTK__
|
||||
- wxClientDC paintDC( drawZone );
|
||||
- #ifdef __WXMAC__
|
||||
- drawStackedImages( paintDC );
|
||||
- #else
|
||||
- paintDC.DrawBitmap( drawImage, 0, 0 );
|
||||
- #endif
|
||||
-#else
|
||||
- #if wxMAJOR_VERSION<3
|
||||
- wxPaintDC paintDC( drawZone );
|
||||
- #else
|
||||
- wxClientDC paintDC( drawZone );
|
||||
- #endif
|
||||
- paintDC.DrawBitmap( drawImage, 0, 0 );
|
||||
-#endif
|
||||
-
|
||||
paintDC.SetFont( semanticFont );
|
||||
+ paintDC.SetPen( backgroundColour );
|
||||
+ paintDC.SetBrush( backgroundColour );
|
||||
+ paintDC.SetTextForeground( foregroundColour );
|
||||
+
|
||||
+ /* Draw the label close to the mouse, so it's easier to follow */
|
||||
+ int label_x0, label_y0;
|
||||
+ label_x0 = mx + 20;
|
||||
+ label_y0 = my + 20;
|
||||
+ paintDC.SetPen( *wxBLACK_PEN );
|
||||
+ paintDC.SetBrush( *wxBLACK_BRUSH );
|
||||
+
|
||||
+ /* Draw a filled black rectangle behind the label, so is easy to read
|
||||
+ * when placed over multiple colors from the trace */
|
||||
+ int rect_x0, rect_y0, rect_w, rect_h;
|
||||
+ rect_x0 = label_x0 - 5;
|
||||
+ rect_y0 = label_y0 - 5;
|
||||
+
|
||||
+ TObjectOrder row;
|
||||
+ TTime time;
|
||||
+
|
||||
+ /* Fills "row" and "time" objects if is over a TimeObject (?) */
|
||||
+ bool print_duration = true;
|
||||
+ double tp, tn;
|
||||
+
|
||||
+ /* This whole thing to get the event is completely crap. We may get a
|
||||
+ * pixel here that belong to a different event, probably due to
|
||||
+ * rounding operations when dealing with time.
|
||||
+ *
|
||||
+ * To avoid giving misleading information, we only print the time when
|
||||
+ * both neighbour pixels are also from the same event */
|
||||
+ print_duration &= pixelToTimeObject(mx, my, time, row);
|
||||
+ print_duration &= pixelToTimeObject(mx-2, my, tp, row);
|
||||
+ print_duration &= pixelToTimeObject(mx+2, my, tn, row);
|
||||
+
|
||||
+ if(time <= tp) print_duration = false;
|
||||
+ if(tn <= time) print_duration = false;
|
||||
+
|
||||
+ //computeWhatWhere(time, row, 0.0, false, false);
|
||||
+
|
||||
+ //printf("time = %e\n", time);
|
||||
+ //printf("begin time = %e\n", myWindow->getBeginTime(row));
|
||||
+
|
||||
+ if(print_duration)
|
||||
+ {
|
||||
+ double t0, t1, t, dt;
|
||||
+ t = time;
|
||||
+
|
||||
+ myWindow->init(t, CREATEEVENTS + CREATECOMMS, false );
|
||||
+ myWindow->initRow(row, t, CREATEEVENTS + CREATECOMMS, false );
|
||||
+
|
||||
+ t0 = myWindow->getBeginTime(row);
|
||||
+ t1 = myWindow->getEndTime(row);
|
||||
+
|
||||
+ //printf("t0=%e t=%e t1=%e\n", t0, t, t1);
|
||||
+ while(!(t0 <= t && t <= t1))
|
||||
+ {
|
||||
+ myWindow->calcNext(row);
|
||||
+ t0 = myWindow->getBeginTime(row);
|
||||
+ t1 = myWindow->getEndTime(row);
|
||||
+ //printf("t0=%e t=%e t1=%e\n", t0, t, t1);
|
||||
+ if(t0 > t)
|
||||
+ {
|
||||
+ //printf("we are out\n");
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /* Only add the duration if we are more than one pixel away from the
|
||||
+ * border */
|
||||
+ if(t0 < tp && tn < t1)
|
||||
+ {
|
||||
+ if(t0 > t)
|
||||
+ dt = 0;
|
||||
+ else
|
||||
+ dt = t1 - t0;
|
||||
+
|
||||
+ assert(t0 <= time);
|
||||
+ assert(time <= t1);
|
||||
+
|
||||
+ wxString duration = wxString::FromAscii( LabelConstructor::timeLabel(
|
||||
+ myWindow->traceUnitsToWindowUnits( dt ),
|
||||
+ myWindow->getTimeUnit(),
|
||||
+ ParaverConfig::getInstance()->getTimelinePrecision() ).c_str() );
|
||||
+
|
||||
+ label << wxT( " (" ) << duration << wxT(")");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
wxSize objectExt = paintDC.GetTextExtent( label );
|
||||
+ rect_w = objectExt.GetWidth() + 10;
|
||||
+ rect_h = objectExt.GetHeight() + 10;
|
||||
+
|
||||
+ /* Erase previous bitmap */
|
||||
+ paintDC.DrawBitmap( drawImage, 0, 0 );
|
||||
+
|
||||
+ /* Draw black rectangle */
|
||||
+ paintDC.DrawRectangle( rect_x0, rect_y0, rect_w, rect_h );
|
||||
|
||||
+ /* Then place the label */
|
||||
+ paintDC.DrawText( label, label_x0, label_y0);
|
||||
paintDC.SetPen( backgroundColour );
|
||||
paintDC.SetBrush( backgroundColour );
|
||||
-// paintDC.DrawRectangle( ( bufferImage.GetWidth() - objectAxisPos ) / 2, timeAxisPos + 1, objectExt.GetWidth() + 30, bufferImage.GetHeight() - timeAxisPos );
|
||||
- if( !( zooming || timing || wxGetApp().GetGlobalTiming() ) )
|
||||
- {
|
||||
- paintDC.SetBrush( tmpColor );
|
||||
- paintDC.DrawRectangle( ( bufferImage.GetWidth() - objectAxisPos ) / 2, timeAxisPos + 2, 10, bufferImage.GetHeight() - timeAxisPos - 3 );
|
||||
- }
|
||||
- paintDC.SetTextForeground( foregroundColour );
|
||||
- if( zooming )
|
||||
- paintDC.DrawText( label, ( bufferImage.GetWidth() - objectAxisPos ) / 2 + objectAxisPos - ( objectExt.GetWidth() / 2 ), timeAxisPos + 3 );
|
||||
- else
|
||||
- paintDC.DrawText( label, ( bufferImage.GetWidth() - objectAxisPos ) / 2 + 12, timeAxisPos + 3 );
|
||||
}
|
||||
|
||||
void gTimeline::OnTimerWheel( wxTimerEvent& event )
|
||||
@@ -5075,7 +5213,11 @@
|
||||
endRow = TObjectOrder( floor( ( y - drawBorder - 1 ) / heightPerRow ) );
|
||||
|
||||
if( endRow >= numObjects )
|
||||
+ {
|
||||
endRow = numObjects - 1;
|
||||
+ printf("endRow exceeds numObjects, capped to %d\n", endRow);
|
||||
+ }
|
||||
+ //printf("endRow = %d\n", endRow);
|
||||
onObject = selected[ endRow ];
|
||||
|
||||
return true;
|
||||
77
pkgs/paraver/release.nix
Normal file
77
pkgs/paraver/release.nix
Normal file
@@ -0,0 +1,77 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, boost
|
||||
, libxml2
|
||||
, xml2
|
||||
, fetchurl
|
||||
, wxGTK32
|
||||
, autoconf
|
||||
, automake
|
||||
, openssl # For boost
|
||||
# Custom patches :)
|
||||
, enableMouseLabel ? false
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
wx = wxGTK32;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wxparaver";
|
||||
version = "4.10.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://ftp.tools.bsc.es/wxparaver/wxparaver-${version}-src.tar.bz2";
|
||||
sha256 = "a7L15viCXtQS9vAsdFzCFlUavUzl4Y0yOYmVSCrdWBU=";
|
||||
};
|
||||
|
||||
patches = []
|
||||
++ optional (enableMouseLabel) ./mouse-label.patch;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# What would we do without the great gamezelda:
|
||||
# https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=wxparaver
|
||||
postPatch = ''
|
||||
pushd src/wxparaver
|
||||
sed -i \
|
||||
-e 's|-lparaver-api -lparaver-kernel|-L../../paraver-kernel/src/.libs -L../../paraver-kernel/api/.libs -lparaver-api -lparaver-kernel -lssl -lcrypto -ldl|g' \
|
||||
-e '$awxparaver_bin_CXXFLAGS = @CXXFLAGS@ -I../../paraver-kernel -I../../paraver-kernel/api' \
|
||||
src/Makefile.am
|
||||
|
||||
sed -i 's| -L$PARAVER_LIBDIR||g' configure.ac
|
||||
popd
|
||||
|
||||
# Patch shebang as /usr/bin/env is missing in nix
|
||||
sed -i '1c#!/bin/sh' src/paraver-cfgs/install.sh
|
||||
'';
|
||||
#TODO: Move the sed commands to proper patches (and maybe send them upstream?)
|
||||
|
||||
preConfigure = ''
|
||||
pushd src/wxparaver
|
||||
autoreconf -i -f
|
||||
popd
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-boost=${boost}"
|
||||
"--with-wx-config=${wx}/bin/wx-config"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
xml2
|
||||
libxml2.dev
|
||||
wx
|
||||
openssl.dev
|
||||
];
|
||||
|
||||
}
|
||||
47
pkgs/paraver/wxparaver.nix
Normal file
47
pkgs/paraver/wxparaver.nix
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
stdenv
|
||||
, fetchFromGitHub
|
||||
, boost
|
||||
, libxml2
|
||||
, xml2
|
||||
, fetchurl
|
||||
, wxGTK30-gtk3
|
||||
, paraver-kernel
|
||||
}:
|
||||
|
||||
let
|
||||
wx = wxGTK30-gtk3;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wxparaver";
|
||||
version = "4.8.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://ftp.tools.bsc.es/wxparaver/wxparaver-${version}-src.tar.bz2";
|
||||
sha256 = "0b8rrhnf7h8j72pj6nrxkrbskgg9b5w60nxi47nxg6275qvfq8hd";
|
||||
};
|
||||
|
||||
postUnpack = "sourceRoot=$sourceRoot/src/wxparaver";
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure = ''
|
||||
configureFlagsArray=(
|
||||
"--with-boost=${boost}"
|
||||
"--with-wx-config=${wx}/bin/wx-config"
|
||||
--with-wxpropgrid-dir=
|
||||
"--with-paraver=${paraver-kernel}"
|
||||
"--enable-debug=yes"
|
||||
"CXXFLAGS=-g"
|
||||
"CFLAGS=-g"
|
||||
)
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
xml2
|
||||
libxml2.dev
|
||||
wx
|
||||
paraver-kernel
|
||||
];
|
||||
|
||||
}
|
||||
13
pkgs/slurm/16.05.8.1/common-env-echo.patch
Normal file
13
pkgs/slurm/16.05.8.1/common-env-echo.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/src/common/env.c b/src/common/env.c
|
||||
index 987846d..73d3b3b 100644
|
||||
--- a/src/common/env.c
|
||||
+++ b/src/common/env.c
|
||||
@@ -1941,7 +1941,7 @@ char **env_array_user_default(const char *username, int timeout, int mode,
|
||||
char **env = NULL;
|
||||
char *starttoken = "XXXXSLURMSTARTPARSINGHEREXXXX";
|
||||
char *stoptoken = "XXXXSLURMSTOPPARSINGHEREXXXXX";
|
||||
- char cmdstr[256], *env_loc = NULL;
|
||||
+ char cmdstr[MAXPATHLEN], *env_loc = NULL;
|
||||
char *stepd_path = NULL;
|
||||
int fd1, fd2, fildes[2], found, fval, len, rc, timeleft;
|
||||
int buf_read, buf_rem, config_timeout;
|
||||
87
pkgs/slurm/16.05.8.1/default.nix
Normal file
87
pkgs/slurm/16.05.8.1/default.nix
Normal file
@@ -0,0 +1,87 @@
|
||||
{ stdenv, lib, fetchFromGitHub, pkg-config, libtool, curl
|
||||
, python3, munge, perl, pam, zlib, shadow, coreutils
|
||||
, ncurses, libmysqlclient, lua, hwloc, numactl
|
||||
, readline, freeipmi, xorg, lz4, rdma-core, nixosTests
|
||||
, pmix, enableX11 ? false
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "slurm";
|
||||
version = "16.05.8.1";
|
||||
|
||||
# N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
|
||||
# because the latter does not keep older releases.
|
||||
src = fetchFromGitHub {
|
||||
owner = "SchedMD";
|
||||
repo = "slurm";
|
||||
# The release tags use - instead of .
|
||||
rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
|
||||
sha256 = "1fkrbi4f22jb2pq19sv3j2yyvac4nh25fk8mzw6ic24swxp8wq9s";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
patches = [
|
||||
./major.patch
|
||||
./mvwprintw.patch
|
||||
# increase string length to allow for full
|
||||
# path of 'echo' in nix store
|
||||
#./common-env-echo.patch
|
||||
# Required for configure to pick up the right dlopen path
|
||||
#./pmix-configure.patch
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace src/common/env.c \
|
||||
--replace "/bin/echo" "${coreutils}/bin/echo"
|
||||
'';
|
||||
|
||||
# nixos test fails to start slurmd with 'undefined symbol: slurm_job_preempt_mode'
|
||||
# https://groups.google.com/forum/#!topic/slurm-devel/QHOajQ84_Es
|
||||
# this doesn't fix tests completely at least makes slurmd to launch
|
||||
hardeningDisable = [ "fortify" "bindnow" ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config libtool python3 ];
|
||||
buildInputs = [
|
||||
curl python3 munge perl pam zlib
|
||||
libmysqlclient ncurses lz4 rdma-core
|
||||
lua hwloc numactl readline freeipmi shadow.su
|
||||
pmix
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"CFLAGS=-fcommon"
|
||||
"--with-freeipmi=${freeipmi}"
|
||||
"--with-hwloc=${hwloc}"
|
||||
"--with-lz4=${lz4.dev}"
|
||||
"--with-munge=${munge}"
|
||||
"--with-zlib=${zlib}"
|
||||
"--with-ofed=${rdma-core}"
|
||||
"--sysconfdir=/etc/slurm"
|
||||
"--with-pmix=${pmix}"
|
||||
"--disable-gtktest"
|
||||
"--disable-x11"
|
||||
];
|
||||
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs ./doc/html/shtml2html.py
|
||||
patchShebangs ./doc/man/man2html.py
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
rm -f $out/lib/*.la $out/lib/slurm/*.la
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru.tests.slurm = nixosTests.slurm;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.schedmd.com/";
|
||||
description = "Simple Linux Utility for Resource Management";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ jagajaga markuskowa ];
|
||||
};
|
||||
}
|
||||
10
pkgs/slurm/16.05.8.1/major.patch
Normal file
10
pkgs/slurm/16.05.8.1/major.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
--- a/src/plugins/task/cgroup/task_cgroup_devices.c 1970-01-01 01:00:01.000000000 +0100
|
||||
+++ b/src/plugins/task/cgroup/task_cgroup_devices.c 1970-01-01 01:00:01.000000000 +0100
|
||||
@@ -43,6 +43,7 @@
|
||||
#include <glob.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
+#include <sys/sysmacros.h>
|
||||
#include <slurm/slurm.h>
|
||||
#include <slurm/slurm_errno.h>
|
||||
#include "src/common/xstring.h"
|
||||
11
pkgs/slurm/16.05.8.1/mvwprintw.patch
Normal file
11
pkgs/slurm/16.05.8.1/mvwprintw.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/src/smap/partition_functions.c 2023-04-02 21:07:54.505816546 +0200
|
||||
+++ b/src/smap/partition_functions.c 2023-04-02 21:07:43.512816197 +0200
|
||||
@@ -588,7 +588,7 @@
|
||||
else
|
||||
tmp_state = "unk";
|
||||
mvwprintw(text_win, main_ycord, main_xcord,
|
||||
- tmp_state);
|
||||
+ "%s", tmp_state);
|
||||
main_xcord += 7;
|
||||
|
||||
if (part_ptr->max_time == INFINITE)
|
||||
22
pkgs/slurm/16.05.8.1/pmi2.nix
Normal file
22
pkgs/slurm/16.05.8.1/pmi2.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
stdenv
|
||||
, slurm
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pmi2-${version}";
|
||||
|
||||
inherit (slurm) src version prePatch nativeBuildInputs buildInputs
|
||||
configureFlags preConfigure;
|
||||
|
||||
# Only build the pmi2 library
|
||||
preBuild = ''cd contribs/pmi2'';
|
||||
|
||||
# Include also the pmi.h header
|
||||
postInstall = ''
|
||||
mkdir -p $out/include
|
||||
cp ../../slurm/pmi.h $out/include
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
}
|
||||
13
pkgs/slurm/16.05.8.1/pmix-configure.patch
Normal file
13
pkgs/slurm/16.05.8.1/pmix-configure.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/configure b/configure
|
||||
index 1cf53bc..ab68441 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -21207,7 +21207,7 @@ rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
as_fn_error $? "error processing $x_ac_cv_pmix_libdir: PMIx v3.x was already found in one of the previous paths" "$LINENO" 5
|
||||
fi
|
||||
_x_ac_pmix_v3_found="1"
|
||||
- PMIX_V3_CPPFLAGS="-I$x_ac_cv_pmix_dir/include"
|
||||
+ PMIX_V3_CPPFLAGS="-I$x_ac_cv_pmix_dir/include -DPMIXP_V3_LIBPATH=\\\"$x_ac_cv_pmix_libdir\\\""
|
||||
if test "$ac_with_rpath" = "yes"; then
|
||||
PMIX_V3_LDFLAGS="-Wl,-rpath -Wl,$x_ac_cv_pmix_libdir -L$x_ac_cv_pmix_libdir"
|
||||
else
|
||||
22
pkgs/slurm/default.nix
Normal file
22
pkgs/slurm/default.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{ slurm }:
|
||||
|
||||
slurm.overrideAttrs (old: {
|
||||
patches = (old.patches or []) ++ [
|
||||
# See https://bugs.schedmd.com/show_bug.cgi?id=19324
|
||||
# Still unmerged as of 2025-10-03, another corpo-cancer.
|
||||
./slurm-rank-expansion.patch
|
||||
];
|
||||
# Install also the pam_slurm_adopt library to restrict users from accessing
|
||||
# nodes with no job allocated.
|
||||
# TODO: Review pam_slurm_adopt, I don't trust their code much.
|
||||
postBuild = (old.postBuild or "") + ''
|
||||
pushd contribs/pam_slurm_adopt
|
||||
make "PAM_DIR=$out/lib/security"
|
||||
popd
|
||||
'';
|
||||
postInstall = (old.postInstall or "") + ''
|
||||
pushd contribs/pam_slurm_adopt
|
||||
make "PAM_DIR=$out/lib/security" install
|
||||
popd
|
||||
'';
|
||||
})
|
||||
82
pkgs/slurm/pmi2.nix
Normal file
82
pkgs/slurm/pmi2.nix
Normal file
@@ -0,0 +1,82 @@
|
||||
{ stdenv, lib, fetchFromGitHub, pkg-config, libtool, curl
|
||||
, python3, munge, perl, pam, openssl
|
||||
, ncurses, libmysqlclient, gtk2, lua, hwloc, numactl
|
||||
, readline, freeipmi, libssh2, xorg
|
||||
, pmix
|
||||
# enable internal X11 support via libssh2
|
||||
, enableX11 ? true
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "slurm-libpmi2-${version}";
|
||||
version = "17.11.9-2";
|
||||
|
||||
# N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
|
||||
# because the latter does not keep older releases.
|
||||
src = fetchFromGitHub {
|
||||
owner = "SchedMD";
|
||||
repo = "slurm";
|
||||
# The release tags use - instead of .
|
||||
rev = "${builtins.replaceStrings ["."] ["-"] name}";
|
||||
sha256 = "1lq4ac6yjai6wh979dciw8v3d99zbd3w36rfh0vpncqm672fg1qy";
|
||||
};
|
||||
|
||||
outputs = [ "out" ];
|
||||
|
||||
prePatch = lib.optional enableX11 ''
|
||||
substituteInPlace src/common/x11_util.c \
|
||||
--replace '"/usr/bin/xauth"' '"${xorg.xauth}/bin/xauth"'
|
||||
'';
|
||||
|
||||
# nixos test fails to start slurmd with 'undefined symbol: slurm_job_preempt_mode'
|
||||
# https://groups.google.com/forum/#!topic/slurm-devel/QHOajQ84_Es
|
||||
# this doesn't fix tests completely at least makes slurmd to launch
|
||||
hardeningDisable = [ "bindnow" ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config libtool ];
|
||||
buildInputs = [
|
||||
curl python3 munge perl pam openssl
|
||||
libmysqlclient ncurses gtk2
|
||||
lua hwloc numactl readline freeipmi
|
||||
pmix
|
||||
] ++ lib.optionals enableX11 [ libssh2 xorg.xauth ];
|
||||
|
||||
configureFlags = with lib;
|
||||
[ "--with-munge=${munge}"
|
||||
"--with-ssl=${openssl.dev}"
|
||||
"--with-hwloc=${hwloc.dev}"
|
||||
"--with-freeipmi=${freeipmi}"
|
||||
"--sysconfdir=/etc/slurm"
|
||||
"--with-pmix=${pmix}"
|
||||
] ++ (optional (gtk2 == null) "--disable-gtktest")
|
||||
++ (optional enableX11 "--with-libssh2=${libssh2.dev}");
|
||||
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs ./doc/html/shtml2html.py
|
||||
patchShebangs ./doc/man/man2html.py
|
||||
patchShebangs ./configure
|
||||
'';
|
||||
|
||||
preBuild = ''cd contribs/pmi2'';
|
||||
|
||||
#buildPhase = ''
|
||||
# pushd contrib/pmi2
|
||||
# make -j install SHELL=${SHELL}
|
||||
# popd
|
||||
#'';
|
||||
|
||||
postInstall = ''
|
||||
rm -f $out/lib/*.la $out/lib/slurm/*.la
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = http://www.schedmd.com/;
|
||||
description = "Simple Linux Utility for Resource Management";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ jagajaga markuskowa ];
|
||||
};
|
||||
}
|
||||
39
pkgs/sonar/default.nix
Normal file
39
pkgs/sonar/default.nix
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, autoreconfHook
|
||||
, fetchFromGitHub
|
||||
, ovni
|
||||
, mpi
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sonar";
|
||||
version = "1.0.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "sonar";
|
||||
rev = "${version}";
|
||||
sha256 = "sha256-DazOEaiMfJLrZNtmQEEHdBkm/m4hq5e0mPEfMtzYqWk=";
|
||||
};
|
||||
hardeningDisable = [ "all" ];
|
||||
dontStrip = true;
|
||||
configureFlags = [ "--with-ovni=${ovni}" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
ovni
|
||||
mpi
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/sonar";
|
||||
description = "Set of runtime libraries which instrument parallel programming models through the ovni instrumentation library";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
}
|
||||
67
pkgs/tagaspi/default.nix
Normal file
67
pkgs/tagaspi/default.nix
Normal file
@@ -0,0 +1,67 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, automake
|
||||
, autoconf
|
||||
, libtool
|
||||
, mpi
|
||||
, autoreconfHook
|
||||
, gpi-2
|
||||
, boost
|
||||
, numactl
|
||||
, rdma-core
|
||||
, gfortran
|
||||
, symlinkJoin
|
||||
}:
|
||||
|
||||
let
|
||||
mpiAll = symlinkJoin {
|
||||
name = "mpi-all";
|
||||
paths = [ mpi.all ];
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tagaspi";
|
||||
enableParallelBuilding = true;
|
||||
separateDebugInfo = true;
|
||||
|
||||
version = "2.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "tagaspi";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-RGG/Re2uM293HduZfGzKUWioDtwnSYYdfeG9pVrX9EM=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
autoreconfHook
|
||||
automake
|
||||
autoconf
|
||||
libtool
|
||||
boost
|
||||
numactl
|
||||
rdma-core
|
||||
gfortran
|
||||
mpiAll
|
||||
];
|
||||
|
||||
dontDisableStatic = true;
|
||||
|
||||
configureFlags = [
|
||||
"--with-gaspi=${gpi-2}"
|
||||
"CFLAGS=-fPIC"
|
||||
"CXXFLAGS=-fPIC"
|
||||
];
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/tagaspi";
|
||||
description = "Task-Aware GASPI";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
72
pkgs/tampi/default.nix
Normal file
72
pkgs/tampi/default.nix
Normal file
@@ -0,0 +1,72 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, automake
|
||||
, autoconf
|
||||
, libtool
|
||||
, gnumake
|
||||
, boost
|
||||
, mpi
|
||||
, autoreconfHook
|
||||
, enableOvni ? true
|
||||
, ovni ? null
|
||||
, useGit ? false
|
||||
, gitUrl ? "ssh://git@bscpm04.bsc.es/interoperability/tampi.git"
|
||||
, gitBranch ? "master"
|
||||
, gitCommit ? "f6455db9d3124ae36e715a4874fd49720e79f20a"
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
assert enableOvni -> (ovni != null);
|
||||
|
||||
let
|
||||
release = rec {
|
||||
version = "4.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "tampi";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-SwfPSnwcZnRnSgNvCD5sFSUJRpWINqI5I4adj5Hh+XY=";
|
||||
};
|
||||
};
|
||||
git = rec {
|
||||
version = src.shortRev;
|
||||
src = builtins.fetchGit {
|
||||
url = gitUrl;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
};
|
||||
source = if (useGit) then git else release;
|
||||
in stdenv.mkDerivation {
|
||||
pname = "tampi";
|
||||
inherit (source) src version;
|
||||
enableParallelBuilding = true;
|
||||
separateDebugInfo = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
autoreconfHook
|
||||
gnumake
|
||||
libtool
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
mpi
|
||||
] ++ optional (enableOvni) ovni;
|
||||
configureFlags = optional (enableOvni) "--with-ovni=${ovni}";
|
||||
dontDisableStatic = true;
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/tampi";
|
||||
description = "Task-Aware MPI";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
36
test/bugs/hwloc.c
Normal file
36
test/bugs/hwloc.c
Normal file
@@ -0,0 +1,36 @@
|
||||
#include <stdio.h>
|
||||
#include <hwloc.h>
|
||||
#include <assert.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
size_t i, coreCount;
|
||||
hwloc_topology_t topology;
|
||||
hwloc_obj_t obj;
|
||||
|
||||
if(hwloc_topology_init(&topology))
|
||||
{
|
||||
fprintf(stderr, "hwloc_topology_init failed\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if(hwloc_topology_load(topology))
|
||||
{
|
||||
fprintf(stderr, "hwloc_topology_load failed\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
coreCount = hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_CORE);
|
||||
printf("coreCount = %zu\n", coreCount);
|
||||
|
||||
for(i = 0; i < coreCount; i++)
|
||||
{
|
||||
obj = hwloc_get_obj_by_type(topology, HWLOC_OBJ_PU, i);
|
||||
assert(obj != NULL);
|
||||
assert(obj->parent != NULL);
|
||||
printf("obj->parent->type = %d, i = %zu\n", obj->parent->type, i);
|
||||
assert(obj->parent->type == HWLOC_OBJ_CORE);
|
||||
}
|
||||
|
||||
printf("hwloc test OK\n");
|
||||
}
|
||||
21
test/bugs/hwloc.nix
Normal file
21
test/bugs/hwloc.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
stdenv
|
||||
, hwloc
|
||||
, strace
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "hwloc-test";
|
||||
requiredSystemFeatures = [ "sys-devices" ];
|
||||
|
||||
src = ./.;
|
||||
|
||||
buildInputs = [ hwloc strace ];
|
||||
|
||||
buildPhase = ''
|
||||
ls -l /sys
|
||||
gcc -lhwloc hwloc.c -o hwloc
|
||||
strace ./hwloc > $out
|
||||
'';
|
||||
|
||||
}
|
||||
22
test/chroot.nix
Normal file
22
test/chroot.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{stdenv}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "chroot-checker";
|
||||
src = ./chroot.nix;
|
||||
dontUnpack = true;
|
||||
buildPhase = ''
|
||||
if [ -e /boot ]; then
|
||||
echo Build is NOT under chroot
|
||||
echo This is the content of / :
|
||||
ls -l /
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "OK: Build is under chroot"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
'';
|
||||
}
|
||||
32
test/compilers/asan.nix
Normal file
32
test/compilers/asan.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{ stdenv, writeText, which, strace }:
|
||||
|
||||
let
|
||||
hello_c = writeText "hello.c" ''
|
||||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("Hello world!\n");
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "asan-c";
|
||||
buildInputs = [ stdenv which strace ];
|
||||
src = hello_c;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
NIX_DEBUG = 0;
|
||||
buildPhase = ''
|
||||
cp ${hello_c} hello.c
|
||||
$CC -v -fsanitize=address hello.c -o hello
|
||||
./hello
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
20
test/compilers/clang-ompss2.nix
Normal file
20
test/compilers/clang-ompss2.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{stdenv, clang-ompss2, nanos6}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "test-clang-ompss2";
|
||||
src = ./.;
|
||||
buildInputs = [ clang-ompss2 nanos6 ];
|
||||
NIX_DEBUG = 1;
|
||||
|
||||
buildPhase = ''
|
||||
clang -fompss-2 hello.c -o hello
|
||||
./hello
|
||||
clang++ -fompss-2 hello.cc -o hello
|
||||
./hello
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
'';
|
||||
}
|
||||
45
test/compilers/clang-openmp-ld.nix
Normal file
45
test/compilers/clang-openmp-ld.nix
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
stdenv
|
||||
, writeText
|
||||
, openmp
|
||||
}:
|
||||
|
||||
let
|
||||
hello_c = writeText "hello.c" ''
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
#pragma omp parallel
|
||||
{
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
pname = "openmp-test-ld";
|
||||
version = "1.0.0";
|
||||
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
|
||||
# nOS-V requires access to /sys/devices to request NUMA information
|
||||
requiredSystemFeatures = [ "sys-devices" ];
|
||||
|
||||
buildInputs = [ openmp ];
|
||||
|
||||
buildPhase = ''
|
||||
set -x
|
||||
|
||||
cp ${hello_c} hello.c
|
||||
clang -fopenmp=libompv ./hello.c -o hello
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
|
||||
}
|
||||
|
||||
59
test/compilers/clang-openmp-nosv.nix
Normal file
59
test/compilers/clang-openmp-nosv.nix
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
stdenv
|
||||
, nosv
|
||||
, writeText
|
||||
}:
|
||||
|
||||
let
|
||||
hello_c = writeText "hello.c" ''
|
||||
#include <nosv.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int test = 1;
|
||||
#pragma omp parallel
|
||||
#pragma omp single
|
||||
#pragma omp task
|
||||
{
|
||||
if (nosv_self() == NULL) {
|
||||
printf("nosv_self() returned NULL\n");
|
||||
exit(1);
|
||||
} else {
|
||||
printf("nosv_self() INSIDE TASK OK\n");
|
||||
}
|
||||
test = 0;
|
||||
}
|
||||
|
||||
return test;
|
||||
}
|
||||
'';
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
pname = "openmp-test-nosv";
|
||||
version = "1.0.0";
|
||||
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
|
||||
# nOS-V requires access to /sys/devices to request NUMA information
|
||||
requiredSystemFeatures = [ "sys-devices" ];
|
||||
|
||||
buildInputs = [ nosv ];
|
||||
|
||||
buildPhase = ''
|
||||
set -x
|
||||
|
||||
cp ${hello_c} hello.c
|
||||
clang -fopenmp=libompv ./hello.c -lnosv -o hello
|
||||
./hello | grep "INSIDE TASK OK"
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
|
||||
}
|
||||
|
||||
45
test/compilers/clang-openmp.nix
Normal file
45
test/compilers/clang-openmp.nix
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
stdenv
|
||||
, writeText
|
||||
}:
|
||||
|
||||
let
|
||||
hello_c = writeText "hello.c" ''
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int test = 1;
|
||||
#pragma omp parallel
|
||||
#pragma omp single
|
||||
#pragma omp task
|
||||
test = 0;
|
||||
|
||||
return test;
|
||||
}
|
||||
'';
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
pname = "openmp-test";
|
||||
version = "1.0.0";
|
||||
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
|
||||
# nOS-V requires access to /sys/devices to request NUMA information
|
||||
requiredSystemFeatures = [ "sys-devices" ];
|
||||
|
||||
buildPhase = ''
|
||||
set -x
|
||||
|
||||
cp ${hello_c} hello.c
|
||||
clang -fopenmp ./hello.c -o hello
|
||||
./hello
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
|
||||
}
|
||||
|
||||
68
test/compilers/hello-c.nix
Normal file
68
test/compilers/hello-c.nix
Normal file
@@ -0,0 +1,68 @@
|
||||
{ stdenv, writeText, which, strace }:
|
||||
|
||||
let
|
||||
hello_c = writeText "hello.c" ''
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
#include <xmmintrin.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("Hello world!\n");
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
shuffle_c = writeText "shuffle.c" ''
|
||||
#include <stdio.h>
|
||||
|
||||
typedef int v4si __attribute__ ((vector_size (16)));
|
||||
|
||||
int main(void) {
|
||||
v4si a = {1,2,3,4};
|
||||
v4si b = {5,6,7,8};
|
||||
v4si mask1 = {0,1,1,3};
|
||||
v4si mask2 = {0,4,2,5};
|
||||
v4si res;
|
||||
|
||||
#if defined(__GNUC__) && (__GNUC__ >= 7)
|
||||
res = __builtin_shuffle (a, mask1); /* res is {1,2,2,4} */
|
||||
res = __builtin_shuffle (a, b, mask2); /* res is {1,5,3,6} */
|
||||
|
||||
printf("%d %d %d %d\n", res[0], res[1], res[2], res[3]);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "hello-c";
|
||||
buildInputs = [ stdenv which strace ];
|
||||
src = hello_c;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
NIX_DEBUG = 0;
|
||||
buildPhase = ''
|
||||
set -x
|
||||
echo CC=$CC
|
||||
which $CC
|
||||
$CC -v
|
||||
|
||||
cp ${hello_c} hello.c
|
||||
$CC -v hello.c -o hello
|
||||
./hello
|
||||
|
||||
# Only gcc
|
||||
#cp ${shuffle_c} shuffle.c
|
||||
#$CC shuffle.c -o shuffle
|
||||
#./shuffle
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
36
test/compilers/hello-cpp.nix
Normal file
36
test/compilers/hello-cpp.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{ stdenv, writeText, which, strace }:
|
||||
|
||||
let
|
||||
hello_cpp = writeText "hello.cpp" ''
|
||||
#include <cstdio>
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("Hello world!\n");
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "hello-cpp";
|
||||
buildInputs = [ stdenv which strace ];
|
||||
src = hello_cpp;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
NIX_DEBUG = 0;
|
||||
buildPhase = ''
|
||||
cp $src hello.cpp
|
||||
set -x
|
||||
echo CXX=$CXX
|
||||
which $CXX
|
||||
$CXX hello.cpp -o hello
|
||||
./hello
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
35
test/compilers/hello-f.nix
Normal file
35
test/compilers/hello-f.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{ stdenv, writeText, which, strace }:
|
||||
|
||||
let
|
||||
hello_f90 = writeText "hello.f90" ''
|
||||
program hello
|
||||
print *, 'Hello, World!'
|
||||
end program hello
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "hello-f90";
|
||||
buildInputs = [ stdenv which strace ];
|
||||
src = hello_f90;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
NIX_DEBUG = 0;
|
||||
buildPhase = ''
|
||||
set -x
|
||||
echo FC=$FC
|
||||
which $FC
|
||||
$FC -v
|
||||
|
||||
cp ${hello_f90} hello.f90
|
||||
$FC hello.f90 -o hello
|
||||
./hello
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
7
test/compilers/hello.c
Normal file
7
test/compilers/hello.c
Normal file
@@ -0,0 +1,7 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("Hello world!\n");
|
||||
return 0;
|
||||
}
|
||||
7
test/compilers/hello.cc
Normal file
7
test/compilers/hello.cc
Normal file
@@ -0,0 +1,7 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("Hello world!\n");
|
||||
return 0;
|
||||
}
|
||||
25
test/compilers/llvm-ompss2-flang.nix
Normal file
25
test/compilers/llvm-ompss2-flang.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
stdenv
|
||||
, flangOmpss2Git
|
||||
, runCommand
|
||||
, writeText
|
||||
, strace
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "flang-ompss2-test";
|
||||
buildInputs = [ strace flangOmpss2Git ];
|
||||
file = writeText "hi.f90"
|
||||
''
|
||||
program hello
|
||||
print *, 'Hello, World!'
|
||||
end program hello
|
||||
'';
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
set -x
|
||||
flang "$file" -c -o hi.o
|
||||
flang hi.o -o hi
|
||||
install -Dm555 hi "$out"
|
||||
'';
|
||||
}
|
||||
43
test/compilers/lto.nix
Normal file
43
test/compilers/lto.nix
Normal file
@@ -0,0 +1,43 @@
|
||||
{ stdenv, writeText, which, strace }:
|
||||
|
||||
let
|
||||
hello_c = writeText "hello.c" ''
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
#include <xmmintrin.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("Hello world!\n");
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "lto-c";
|
||||
buildInputs = [ stdenv which strace ];
|
||||
src = hello_c;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
NIX_DEBUG = 0;
|
||||
buildPhase = ''
|
||||
set -x
|
||||
echo CC=$CC
|
||||
echo LD=$LD
|
||||
echo -------------------------------------------
|
||||
env
|
||||
echo -------------------------------------------
|
||||
|
||||
cp ${hello_c} hello.c
|
||||
$CC -v -flto hello.c -o hello
|
||||
./hello
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
53
test/compilers/ompss2.nix
Normal file
53
test/compilers/ompss2.nix
Normal file
@@ -0,0 +1,53 @@
|
||||
{ stdenv, writeText, which, strace, gdb }:
|
||||
|
||||
let
|
||||
task_c = writeText "task.c" ''
|
||||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
for (int i = 0; i < 10; i++) {
|
||||
#pragma oss task
|
||||
printf("Hello world!\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "task_c";
|
||||
src = task_c;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
hardeningDisable = [ "all" ];
|
||||
#NIX_DEBUG = 1;
|
||||
buildInputs = [ ]; #strace gdb;
|
||||
|
||||
# NODES requires access to /sys/devices to request NUMA information
|
||||
requiredSystemFeatures = [ "sys-devices" ];
|
||||
|
||||
buildPhase = ''
|
||||
set -x
|
||||
#$CC -v
|
||||
|
||||
cp ${task_c} task.c
|
||||
|
||||
echo CC=$CC
|
||||
echo NANOS6_HOME=$NANOS6_HOME
|
||||
echo NODES_HOME=$NODES_HOME
|
||||
cat task.c
|
||||
$CC -fompss-2 task.c -o task
|
||||
#strace -ff -e trace=open,openat -s9999999 ./task
|
||||
LD_DEBUG=libs ./task
|
||||
#gdb -batch -ex "run" -ex "bt" ./task
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
50
test/compilers/suffle-c.nix
Normal file
50
test/compilers/suffle-c.nix
Normal file
@@ -0,0 +1,50 @@
|
||||
{ stdenv, writeText, which, strace }:
|
||||
|
||||
let
|
||||
shuffle_c = writeText "shuffle.c" ''
|
||||
#include <stdio.h>
|
||||
|
||||
typedef int v4si __attribute__ ((vector_size (16)));
|
||||
|
||||
int main(void) {
|
||||
v4si a = {1,2,3,4};
|
||||
v4si b = {5,6,7,8};
|
||||
v4si mask1 = {0,1,1,3};
|
||||
v4si mask2 = {0,4,2,5};
|
||||
v4si res;
|
||||
|
||||
#if defined(__GNUC__) && (__GNUC__ >= 7)
|
||||
res = __builtin_shuffle (a, mask1); /* res is {1,2,2,4} */
|
||||
res = __builtin_shuffle (a, b, mask2); /* res is {1,5,3,6} */
|
||||
|
||||
printf("%d %d %d %d\n", res[0], res[1], res[2], res[3]);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "hello-c";
|
||||
buildInputs = [ stdenv which strace ];
|
||||
src = hello_c;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
NIX_DEBUG = 0;
|
||||
buildPhase = ''
|
||||
cp $src hello.c
|
||||
set -x
|
||||
echo CC=$CC
|
||||
which $CC
|
||||
#strace -ff -e trace=execve -s99999999 $CC hello.c -o hello
|
||||
$CC hello.c -o hello
|
||||
./hello
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
35
test/reproducers/sigsegv.c
Normal file
35
test/reproducers/sigsegv.c
Normal file
@@ -0,0 +1,35 @@
|
||||
#include <mpi.h>
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
void sigsegv(int rank)
|
||||
{
|
||||
if (rank == 2) raise(SIGSEGV);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int rank;
|
||||
char where;
|
||||
|
||||
MPI_Init(&argc, &argv);
|
||||
|
||||
if(!argv[1])
|
||||
{
|
||||
fprintf(stderr, "missing \"before\" or \"after\" argument\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
|
||||
|
||||
where = argv[1][0];
|
||||
|
||||
if(where == 'b') sigsegv(rank);
|
||||
|
||||
MPI_Finalize();
|
||||
|
||||
if(where == 'a') sigsegv(rank);
|
||||
|
||||
return 0;
|
||||
}
|
||||
20
test/reproducers/sigsegv.nix
Normal file
20
test/reproducers/sigsegv.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
stdenv
|
||||
, mpi
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "sigsegv";
|
||||
|
||||
src = ./.;
|
||||
|
||||
buildInputs = [ mpi ];
|
||||
|
||||
buildPhase = ''
|
||||
mpicc sigsegv.c -o sigsegv
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
cp sigsegv $out
|
||||
'';
|
||||
}
|
||||
20
test/security/internet.nix
Normal file
20
test/security/internet.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{stdenv, curl, coreutils}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "internet-test";
|
||||
src = ./internet.nix;
|
||||
dontUnpack = true;
|
||||
buildInputs = [ curl coreutils ];
|
||||
buildPhase = ''
|
||||
cat /proc/self/mounts
|
||||
ls -l /proc
|
||||
ls -l /
|
||||
ip addr
|
||||
${curl}/bin/curl https://www.bsc.es/
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
'';
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user