From 2adcbd9cee671b62266dec7f16639a6b039e74c7 Mon Sep 17 00:00:00 2001 From: Johannes Kliemann Date: Thu, 11 Jun 2026 15:11:37 +0200 Subject: [PATCH] Fix installer call for GNATPro for Rust --- lmod_manager/lmod_manager.py | 17 ++++++++++++----- .../gnatpro-rust-26.2-x86_64-linux-bin.tar.gz | Bin 0 -> 2504 bytes tests/lmod_manager_test.py | 7 +++++++ 3 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 tests/data/gnatpro-rust-26.2-x86_64-linux-bin.tar.gz diff --git a/lmod_manager/lmod_manager.py b/lmod_manager/lmod_manager.py index 9b26849..1ea9daa 100755 --- a/lmod_manager/lmod_manager.py +++ b/lmod_manager/lmod_manager.py @@ -276,11 +276,18 @@ def _installation_file() -> Path: return Path("bin/rustc") def _install_archive(self, installation_dir: Path) -> None: - call( - f"./install --install-dir='{installation_dir}' --force", - cwd=self._extracted_archive_dir(), - shell=True, - ) + if (self._extracted_archive_dir() / "doinstall").is_file(): + call( + f"./doinstall '{installation_dir}'", + cwd=self._extracted_archive_dir(), + shell=True, + ) + else: + call( + f"./install --install-dir='{installation_dir}' --force", + cwd=self._extracted_archive_dir(), + shell=True, + ) def main() -> Union[int, str]: diff --git a/tests/data/gnatpro-rust-26.2-x86_64-linux-bin.tar.gz b/tests/data/gnatpro-rust-26.2-x86_64-linux-bin.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..8462d47bd5e98191ff7b32a3824c0d882a3d7efe GIT binary patch literal 2504 zcmV;(2{-m1iwFo%_A6=t17~hwbZ~NSEpl~pbS*MAE;226I5uB4G%ajtZgqGqVrgzJ zbYXG;?HOxt+c>hH^(&^TfhI-#Op_jxHTGP`X^qR;f#YtkNK-+U>6nNts-zSr==Fa4 z4M|BRWjpO|dpI06EYK(FfWpRVg~>wn5H%J%@gSk(m8iICNe9!6iJb|5H7g~+h zeii?Fxd)x8-({RQ&UiRH>%Q&u2W@u^m+K&k>c*uG;7!OTeh9Zdr~V`)0VnEK9JCxKW0a3c{75{RpUOU?^@9B#htJ9LEqkiv4u$&Qkg2IeAxb;sTFDqX%u&*Dl>hJ}QLa2YLd?|pxUc%LjwmcE_%TI0m zmK*i@F~rC4`S|NGM8`0J@c63>m7JnoO&|&83@VyoCBhSu5Wb)hLHi&m8g42J)q-+V zirH?1n^dL^hul$-2>qD)M#J)Czzo_J_bP9weRn0F zDuId(v?h?^xJVz;086-6sRhqmrvQGIr<3Obuw1!Q&VYoY3+A4<}3GJZMj2>1dYb(e)x z1kRkzsPts~!UqH73L~mKLX3&zUl_P7rJ00@l}C|K5R17#V?xdxd0>PpQ?z~|=0 z=jvu2(HA!|2UcSXS2>^;809))5y_u2HEiEH^{Es+mTG~rpE3>5nJ})1GkMSODs*=g zb-lH0wsM`pGBznCQOO)3ES`fH8Rk$5o-h83B0#E;PyG5ZDQxO3EI}kJ#lqQ2v{R&2 zoo&>#%<@}6)P|4Y)LF;46Lj9xWafiBbPLRq8>#ikJj+ zM#*#!c#4&me0Dun6Q1=H$gqzM!7T~z_kb1YE4zkjP7@|8FYMLB`z(qXgwzZvZyOX? zBaAIW0tr8!b3y{k>S{coj;8xF#QqjTK_~-;CDxfrH8nV;ck5M$ znsVuxLg=Sa@UQ|lO_=_u_y_C(=@;dZnidrS!_I&u6*Vjk1Qr}ZuX8CC@@$r7K8`X4?(1{N*1vS>zX{- zrUvK?KC0~R{?rd79)zi_le?s0h*|JPjk#oimp}F3D<66xx*5I3R@R_br`oPO$;m>T zoP18Pibe9tOqTb4bPr2TF$McUekbv7NR*j^R;-b=@)-iAIy2MdqvEX-7Ddc(aM~aJ z)^=shGW>@&du+O{Y4o?JWEGK2(JJ!XKQxS#m^z3; zm4;gKR>OdGx=1HEfE7j2Ct7WNDxGfC4?WTE*y6LErqxT zA1krXv9&-s?<%B5AeG_C@=h(dr%;-oS~6SHUcRY{zXvB(+xjkJ_^QQow8CT7OIf57 zS`2Df86>~L<^6|$MFV39t5#mebOsmidn1D`A!iwS*9B@17ZBBzJrl8vEH^N79Uog; zFCG9lZFCC?BK*LyrMX@Ms`0lR=VBxX3~$WrVSC83%V>YXQu%k6vOPW|{P%0qakPa% zdV`v;l>K#+a&pC-kA~e|@5C{*l5JUPSyzc6u9CEMPqeYmkpWZ*PlhY3jB2(TjEq`( zMrq``YXNJBvc%To8lrSD!FMt8m+He(nUKZtQo7d(bK9R(988q|>%aOvuE+Jb9@pb~ ST#xIoy#515_kwHyC;$L*Ov|VM literal 0 HcmV?d00001 diff --git a/tests/lmod_manager_test.py b/tests/lmod_manager_test.py index f05a18f..7ca4ef9 100644 --- a/tests/lmod_manager_test.py +++ b/tests/lmod_manager_test.py @@ -247,6 +247,13 @@ def test_install_unexpected_archive_name_format(monkeypatch: MonkeyPatch, tmp_pa "25.0w-20240820", ), ], + [ + Archive( + "gnatpro-rust-26.2-x86_64-linux-bin.tar.gz", + "gnatpro-rust", + "26.2", + ), + ], ], ) def test_install_and_uninstall(