work with init_wine
This commit is contained in:
parent
df97448bdb
commit
9d0d2c8f68
15
config.json
15
config.json
@ -1,7 +1,16 @@
|
|||||||
{
|
{
|
||||||
"plugins_ver" : "20",
|
|
||||||
"libs_ver" : "52",
|
|
||||||
"used_wine" : "PROTON_LG",
|
"used_wine" : "PROTON_LG",
|
||||||
|
|
||||||
"default_wine" : "WINE_LG_10-1",
|
"default_wine" : "WINE_LG_10-1",
|
||||||
"default_proton" : "PROTON_LG_9-19"
|
"default_proton" : "PROTON_LG_9-19",
|
||||||
|
|
||||||
|
"dxvk_git" : "2.5.3-31",
|
||||||
|
"dxvk_stable" : "1.10.3-28",
|
||||||
|
"dxvk_legacy" : "1.6.1",
|
||||||
|
|
||||||
|
"vkd3d_git" : "1.1-4367",
|
||||||
|
"vkd3d_stable" : "1.1-2602",
|
||||||
|
|
||||||
|
"plugins_ver" : "20",
|
||||||
|
"libs_ver" : "52"
|
||||||
}
|
}
|
||||||
|
@ -2,17 +2,21 @@ import os
|
|||||||
from .log import *
|
from .log import *
|
||||||
|
|
||||||
# функции обработки переменных LINUX окружения
|
# функции обработки переменных LINUX окружения
|
||||||
def print_env_var(var_name):
|
def print_env_var(*var_name):
|
||||||
if var_name in os.environ:
|
for v in var_name:
|
||||||
value = os.environ[var_name]
|
if v in os.environ:
|
||||||
log.info(f"Переменная {var_name}={value}")
|
value = os.environ[v]
|
||||||
|
log.info(f"Переменная {v}={value}")
|
||||||
else:
|
else:
|
||||||
log.warning(f"Переменная {var_name} не определена")
|
log.warning(f"Переменная {v} не определена")
|
||||||
|
|
||||||
def set_env_var(var_name, default_value):
|
def set_env_var_if_none(var_name, default_value):
|
||||||
if var_name not in os.environ or not os.environ[var_name]:
|
if var_name not in os.environ or not os.environ[var_name]:
|
||||||
os.environ[var_name] = default_value
|
os.environ[var_name] = default_value
|
||||||
|
|
||||||
|
def set_env_var_force(var_name, value):
|
||||||
|
os.environ[var_name] = value
|
||||||
|
|
||||||
def get_env_var(var_name):
|
def get_env_var(var_name):
|
||||||
if var_name in os.environ and os.environ[var_name]:
|
if var_name in os.environ and os.environ[var_name]:
|
||||||
return os.environ[var_name]
|
return os.environ[var_name]
|
||||||
@ -39,11 +43,15 @@ def env_var(var_name, value):
|
|||||||
match var_name:
|
match var_name:
|
||||||
case "WINEDLLOVERRIDES":
|
case "WINEDLLOVERRIDES":
|
||||||
add_to_env_var("WINEDLLOVERRIDES", ";", value)
|
add_to_env_var("WINEDLLOVERRIDES", ";", value)
|
||||||
|
case "WINEDLLPATH":
|
||||||
|
add_to_env_var("WINEDLLPATH", ":", value)
|
||||||
case "VKD3D_CONFIG":
|
case "VKD3D_CONFIG":
|
||||||
add_to_env_var("VKD3D_CONFIG", ";", value)
|
add_to_env_var("VKD3D_CONFIG", ";", value)
|
||||||
case "RADV_PERFTEST":
|
case "RADV_PERFTEST":
|
||||||
add_to_env_var("RADV_PERFTEST", ";", value)
|
add_to_env_var("RADV_PERFTEST", ";", value)
|
||||||
case "PW_VK_INSTANCE_LAYERS":
|
case "VK_INSTANCE_LAYERS":
|
||||||
add_to_env_var("PW_VK_INSTANCE_LAYERS", ":", value)
|
add_to_env_var("VK_INSTANCE_LAYERS", ":", value)
|
||||||
case "LD_LIBRARY_PATH":
|
case "LD_LIBRARY_PATH":
|
||||||
add_to_env_var("LD_LIBRARY_PATH", ":", value)
|
add_to_env_var("LD_LIBRARY_PATH", ":", value)
|
||||||
|
case "PATH":
|
||||||
|
add_to_env_var("PATH", ":", value)
|
||||||
|
@ -1,20 +1,56 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
from .log import *
|
from .log import *
|
||||||
|
from .env_var import *
|
||||||
from .files_worker import *
|
from .files_worker import *
|
||||||
from .config_parser import *
|
from .config_parser import *
|
||||||
|
|
||||||
def init_wine(dist_path):
|
def init_wine(dist_path):
|
||||||
used_wine_upper = var("used_wine").upper()
|
used_wine_upper = var("used_wine").upper()
|
||||||
|
|
||||||
|
# TODO: будем переименовывать все каталоги wine в верхний регистр?
|
||||||
|
|
||||||
if used_wine_upper != "SYSTEM":
|
if used_wine_upper != "SYSTEM":
|
||||||
if used_wine_upper == "WINE_LG":
|
if used_wine_upper == "WINE_LG":
|
||||||
used_wine = var("default_wine")
|
used_wine = var("default_wine")
|
||||||
elif used_wine_upper == "PROTON_LG":
|
elif used_wine_upper == "PROTON_LG":
|
||||||
used_wine = var("default_proton")
|
used_wine = var("default_proton")
|
||||||
|
|
||||||
log.info(f"used wine: {used_wine}")
|
|
||||||
wine_path = dist_path + "/" + used_wine
|
wine_path = dist_path + "/" + used_wine
|
||||||
log.info(wine_path)
|
|
||||||
|
if not os.path.exists(wine_path + "/bin/wine"):
|
||||||
|
# TODO: если нет wine то качаем и распаковываем
|
||||||
|
log.warning(f"{used_wine} not found. Try download...")
|
||||||
|
|
||||||
|
if not os.path.exists(wine_path + "/bin/wine"):
|
||||||
|
log.critical(f"{used_wine} not found. Interrupt!")
|
||||||
|
|
||||||
|
env_var("PATH", wine_path + "/bin")
|
||||||
|
env_var("LD_LIBRARY_PATH", wine_path + "/lib")
|
||||||
|
set_env_var_force("WINEDLLPATH", wine_path + "/lib/wine")
|
||||||
|
if os.path.exists(wine_path + "/lib64/"):
|
||||||
|
env_var("LD_LIBRARY_PATH", wine_path + "/lib64")
|
||||||
|
env_var("WINEDLLPATH", wine_path + "/lib64/wine")
|
||||||
|
|
||||||
|
wine_share = wine_path + "/share"
|
||||||
|
if os.path.exists(wine_share + "/espeak-ng-data/"):
|
||||||
|
set_env_var_force("ESPEAK_DATA_PATH", wine_share)
|
||||||
|
if os.path.exists(wine_share + "/media/"):
|
||||||
|
set_env_var_force("MEDIACONV_BLANK_VIDEO_FILE", wine_share + "/media/blank.mkv")
|
||||||
|
set_env_var_force("MEDIACONV_BLANK_AUDIO_FILE", wine_share + "/media/blank.ptna")
|
||||||
|
|
||||||
|
# TODO: mono, gecko
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# TODO: добавить системный вайн
|
# TODO: добавить проверку системного вайна
|
||||||
...
|
wine_path = "/usr"
|
||||||
|
|
||||||
|
# общие переменные окружения для любой версии wine
|
||||||
|
set_env_var_force("WINE", wine_path + "/bin/wine")
|
||||||
|
set_env_var_force("WINELOADER", wine_path + "/bin/wine")
|
||||||
|
set_env_var_force("WINESERVER", wine_path + "/bin/wineserver")
|
||||||
|
|
||||||
|
log.info(f"wine in used: {used_wine}")
|
||||||
|
print_env_var("WINELOADER", "WINESERVER", "WINEDLLPATH")
|
||||||
|
print_env_var("PATH", "LD_LIBRARY_PATH")
|
||||||
|
# print_env_var("ESPEAK_DATA_PATH", "MEDIACONV_BLANK_VIDEO_FILE", "MEDIACONV_BLANK_AUDIO_FILE")
|
||||||
|
@ -24,6 +24,9 @@ libs_path = data_path + "/libs_v" + var("libs_ver")
|
|||||||
|
|
||||||
create_new_dir(dist_path, tmp_path, img_path, vulkan_path)
|
create_new_dir(dist_path, tmp_path, img_path, vulkan_path)
|
||||||
|
|
||||||
|
log.info(f"рабочий каталог: {work_path}")
|
||||||
|
log.info(f"принятые аргументы: {sys.argv[1:]}")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# TODO: реализовать все функции get_* в модуль downloader.py:
|
# TODO: реализовать все функции get_* в модуль downloader.py:
|
||||||
|
|
||||||
@ -48,7 +51,4 @@ if __name__ == "__main__":
|
|||||||
# версия контейнера будет захардкожена, парсить ничего не надо
|
# версия контейнера будет захардкожена, парсить ничего не надо
|
||||||
get_libs(libs_ver)
|
get_libs(libs_ver)
|
||||||
|
|
||||||
log.info(work_path)
|
|
||||||
log.info(sys.argv[1:])
|
|
||||||
|
|
||||||
init_wine(dist_path)
|
init_wine(dist_path)
|
||||||
|
Loading…
Reference in New Issue
Block a user