From cfecafe73a4d7f9fe293f0a4e3f3e615c3133bd3 Mon Sep 17 00:00:00 2001 From: knj Date: Tue, 20 Jun 2023 13:33:16 +0200 Subject: [PATCH 1/3] add more general check for wine to handle WSL --- ivas_processing_scripts/processing/config.py | 8 ++------ ivas_processing_scripts/processing/evs.py | 6 ++---- ivas_processing_scripts/processing/ivas.py | 6 ++---- ivas_processing_scripts/utils.py | 7 +++++++ 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/ivas_processing_scripts/processing/config.py b/ivas_processing_scripts/processing/config.py index d813f766..adef6528 100755 --- a/ivas_processing_scripts/processing/config.py +++ b/ivas_processing_scripts/processing/config.py @@ -46,7 +46,7 @@ from ivas_processing_scripts.constants import ( REQUIRED_KEYS_MNRU, SUPPORTED_CONDITIONS, ) -from ivas_processing_scripts.utils import find_binary, get_abs_path +from ivas_processing_scripts.utils import find_binary, get_abs_path, use_wine def merge_dicts(base: dict, other: dict) -> None: @@ -246,9 +246,5 @@ class TestConfig: def _validate_merged_config(self, cfg: dict): # if not on windows, but "use_windows_codec_binaries" is given, assure that wine is there - if ( - platform.system() == "Linux" - and cfg["use_windows_codec_binaries"] - and find_binary("wine") is None - ): + if use_wine(cfg["use_windows_codec_binaries"]) and find_binary("wine") is None: raise FileNotFoundError("Using windows binaries on Linux requires wine") diff --git a/ivas_processing_scripts/processing/evs.py b/ivas_processing_scripts/processing/evs.py index 6697a71a..605f9b24 100755 --- a/ivas_processing_scripts/processing/evs.py +++ b/ivas_processing_scripts/processing/evs.py @@ -55,7 +55,7 @@ from ivas_processing_scripts.audiotools.wrappers.networkSimulator import ( validate_network_simulator, ) from ivas_processing_scripts.processing.processing import Processing -from ivas_processing_scripts.utils import apply_func_parallel, run +from ivas_processing_scripts.utils import apply_func_parallel, run, use_wine class EVS(Processing): @@ -64,9 +64,7 @@ class EVS(Processing): self.name = "evs" self.in_fmt = audio.fromtype(self.in_fmt) self._validate() - self._use_wine = ( - platform.system() == "Linux" and self.use_windows_codec_binaries - ) + self._use_wine = use_wine(self.use_windows_codec_binaries) def _validate( self, diff --git a/ivas_processing_scripts/processing/ivas.py b/ivas_processing_scripts/processing/ivas.py index 217f47ad..0f4c3dc9 100755 --- a/ivas_processing_scripts/processing/ivas.py +++ b/ivas_processing_scripts/processing/ivas.py @@ -48,7 +48,7 @@ from ivas_processing_scripts.audiotools.wrappers.networkSimulator import ( validate_network_simulator, ) from ivas_processing_scripts.processing.processing import Processing -from ivas_processing_scripts.utils import run +from ivas_processing_scripts.utils import run, use_wine class IVAS(Processing): @@ -60,9 +60,7 @@ class IVAS(Processing): self.out_fmt = audio.fromtype(self.out_fmt) if not hasattr(self, "dec_opts"): self.dec_opts = None - self._use_wine = ( - platform.system() == "Linux" and self.use_windows_codec_binaries - ) + self._use_wine = use_wine(self.use_windows_codec_binaries) def _validate(self): need_exe_suffix = ( diff --git a/ivas_processing_scripts/utils.py b/ivas_processing_scripts/utils.py index 4680b224..e970ea84 100755 --- a/ivas_processing_scripts/utils.py +++ b/ivas_processing_scripts/utils.py @@ -34,6 +34,7 @@ import logging import shutil import subprocess as sp import sys +import platform from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor from itertools import cycle, repeat, tee from os import devnull @@ -142,6 +143,12 @@ System interaction """ +def use_wine(use_windows_codec_binaries: bool): + linux_system = platform.system() == "Linux" + wsl = "microsoft-standard" in platform.uname().release + return linux_system and wsl and use_windows_codec_binaries + + def find_binary( binary: str, raise_error: Optional[bool] = True, -- GitLab From 7fa44420408f1e292af1a1bb35d8edaf6654465c Mon Sep 17 00:00:00 2001 From: knj Date: Tue, 20 Jun 2023 13:44:11 +0200 Subject: [PATCH 2/3] fix logic error --- ivas_processing_scripts/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ivas_processing_scripts/utils.py b/ivas_processing_scripts/utils.py index e970ea84..aeff5e6f 100755 --- a/ivas_processing_scripts/utils.py +++ b/ivas_processing_scripts/utils.py @@ -146,7 +146,7 @@ System interaction def use_wine(use_windows_codec_binaries: bool): linux_system = platform.system() == "Linux" wsl = "microsoft-standard" in platform.uname().release - return linux_system and wsl and use_windows_codec_binaries + return linux_system and not wsl and use_windows_codec_binaries def find_binary( -- GitLab From ff1a99cd0dffcfba362b9ff3d8bc9016bd5afa79 Mon Sep 17 00:00:00 2001 From: kiene Date: Wed, 21 Jun 2023 09:19:35 +0000 Subject: [PATCH 3/3] Fix check for WSL --- ivas_processing_scripts/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ivas_processing_scripts/utils.py b/ivas_processing_scripts/utils.py index aeff5e6f..7f593aff 100755 --- a/ivas_processing_scripts/utils.py +++ b/ivas_processing_scripts/utils.py @@ -145,7 +145,7 @@ System interaction def use_wine(use_windows_codec_binaries: bool): linux_system = platform.system() == "Linux" - wsl = "microsoft-standard" in platform.uname().release + wsl = "microsoft" in platform.uname().release.lower() return linux_system and not wsl and use_windows_codec_binaries -- GitLab