From ef4d55689989d27395e661a3286d5e1050790676 Mon Sep 17 00:00:00 2001 From: xgui4 <134389196+xgui4@users.noreply.github.com> Date: Fri, 27 Mar 2026 20:55:07 -0400 Subject: [PATCH] add initial support for freebsd --- assets/languages/en.json | 1 + assets/languages/fr.json | 1 + assets/languages/translations.json | 1 + build.sh | 12 +++++++++--- pyproject.toml | 11 ++++++----- readme.md | 12 +++++++----- src/lce_qt_launcher/json_trans.py | 8 ++++---- src/main.py | 13 +++++-------- uv.lock | 12 ++++++++++-- 9 files changed, 44 insertions(+), 27 deletions(-) diff --git a/assets/languages/en.json b/assets/languages/en.json index 1565aed..8c32dad 100644 --- a/assets/languages/en.json +++ b/assets/languages/en.json @@ -1,6 +1,7 @@ { "version" : "Version", "help-message" : "-h or --help to get this help \n -v or --version to get the app version \n -L or --license to get the license information \n -a or --about to get information about the app \n -cl or --cli to launch the cli version \n -g or --gen-config to generate or update the app config", + "about-message" : "This is a custom Minecraft LCE Launcher written in Python and Qt with Freedom and GNU/Linux support in mind.", "play" : "Play", "install" : "Install", "username" : "Username", diff --git a/assets/languages/fr.json b/assets/languages/fr.json index 211fd60..165135b 100644 --- a/assets/languages/fr.json +++ b/assets/languages/fr.json @@ -1,6 +1,7 @@ { "version" : "Version", "help-message" : "-h ou --help pour obtenir cette aide \n -v ou --version pour obtenir la version de l'application \n -L ou --license pour obtenir les informations de licence \n -a ou --about pour obtenir des informations sur l'application \n -cl ou --cli pour lancer la version en ligne de commande \n -g ou --gen-config pour générer ou mettre à jour la configuration de l'application", + "about-meessage" : "Il s'agit d'un lanceur Minecraft LCE personnalisé, écrit en Python et Qt, conçu pour prendre en charge Freedom et GNU/Linux.", "play" : "Jouer", "install" : "Installer", "username" : "Nom d'utilisateur", diff --git a/assets/languages/translations.json b/assets/languages/translations.json index 0fe3cd5..8724d18 100644 --- a/assets/languages/translations.json +++ b/assets/languages/translations.json @@ -1,6 +1,7 @@ { "version" : "Version", "help-message" : "-h or --help to get this help \n -v or --version to get the app version \n -L or --license to get the license information \n -a or --about to get information about the app \n -cl or --cli to launch the cli version \n -g or --gen-config to generate or update the app config", + "about-message" : "This is a custom Minecraft LCE Launcher written in Python and Qt with Freedom and GNU/Linux support in mind.", "play" : "Play", "install" : "Install", "username" : "Username", diff --git a/build.sh b/build.sh index 5a96fa4..f369708 100755 --- a/build.sh +++ b/build.sh @@ -2,6 +2,12 @@ set -e -pyside6-rcc "res.qrc" -o "src/res_rc.py" && -pyside6-uic "src/form.ui" -o "src/ui_form.py" && -pyside6-uic "src/system_info.ui" -o "src/ui_system_info.py" +if [[ $("uname -s") != "FreeBSD" ]]; then + pyside6-rcc "res.qrc" -o "src/res_rc.py" && + pyside6-uic "src/form.ui" -o "src/ui_form.py" && + pyside6-uic "src/system_info.ui" -o "src/ui_system_info.py" +else + /usr/local/pyside6/rcc -g python "res.qrc" -o "src/res_rc.py" && + /usr/local/pyside6/uic -g python "src/form.ui" -o "src/ui_form.py" && + /usr/local/pyside6/uic -g python "src/system_info.ui" -o "src/ui_system_info.py" +fi \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 6f4e489..eecc660 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,10 @@ [build-system] -requires = ["hatchling", "PySide6"] +requires = ["hatchling", "pyside6; sys_platform == 'win32' or sys_platform == 'linux' or sys_platform == 'darwin'"] build-backend = "hatchling.build" [project] name = "LCE-Qt-Launcher" -version = "26.3.27a" +version = "26.3.27a0" description = "This is a custom Free/Libre Minecraft LCE Launcher written in Python and Qt." requires-python = ">3.10, <3.13" license = "GPL-3.0-or-later" @@ -12,7 +12,7 @@ readme = "readme.md" license-files = [ "license.md" ] dependencies = [ - "pyside6", + "pyside6; sys_platform == 'win32' or sys_platform == 'linux' or sys_platform == 'darwin'", "requests", "rich", "term-image", @@ -20,6 +20,7 @@ dependencies = [ "pip", "hatch", "nuitka", + "walker; sys_platform == 'win32'", "patchelf; sys_platform == 'linux'", ] @@ -44,8 +45,8 @@ windows-icon-from-ico = "assets/app.ico" product-name = "LCE-Qt-Launcher" file-description = "Custom Free/Libre Minecraft LCE Launcher" copyright = "GPL-3.0-or-later" -windows-file-version = "{from_modules:src._version}" -windows-product-version = "{from_modules:src._version}" +windows-file-version = "26.3.27a0.0" +windows-product-version = "26.3.27a0.0" include-data-dir = "assets" include-distribution-metadata = "LCE-Qt-Launcher" include-module = [ diff --git a/readme.md b/readme.md index 0be643d..caa7aa5 100644 --- a/readme.md +++ b/readme.md @@ -18,15 +18,17 @@ This is a custom Minecraft LCE Launcher written in Python and Qt with Freedom an - Customisable - Free Software (GPLv3) - Multiple Instance (Work in progress) +- localisatiions (Work in progress) -- GNU/Linux compatibility first (with secondary Windows and FreeBSD support) +- GNU/Linux compatibility +- Experimental FreeBSD support +- Windows support - Focus on being the main hub for Minecraft LCE on GNU/Linux - Minecraft Theme pre-configured @@ -45,12 +47,12 @@ Guide coming laters ## How to build -Coming in version 0.0.1 when the program will be more stable +Coming in the next stable release when the program will be more stable ## Nigthly Build > [!NOTE] -> This automatic nighly build is currently not-stable and very experimental and is in constant change +> This automatic nighly build is currently not-stable and very experimental and active developpement In this [GitHub Relese](https://github.com/xgui4/LCE-Qt-Launcher/releases/tag/nightly) page you will found Nighly Build which are made automatically via GitHub Action when change are made in the `nighly` branch @@ -59,7 +61,7 @@ MacOS is not avaiable in the Nigthly Build for now since I lack a way to test it ## Software Requirement -- [Python 3.12.x](https://www.python.org/downloads/latest/python3.12/) +- [Python 3.10 to Python 3.13](https://www.python.org) - with a virtual env with the required library install (specified in the readme and [`pyproject.toml`](pyproject.toml)) - [PySide6](https://pypi.org/project/PySide6/) - [Monocraft Font](https://github.com/IdreesInc/Monocraft) installed diff --git a/src/lce_qt_launcher/json_trans.py b/src/lce_qt_launcher/json_trans.py index 147e632..1fc724e 100644 --- a/src/lce_qt_launcher/json_trans.py +++ b/src/lce_qt_launcher/json_trans.py @@ -8,9 +8,9 @@ import lce_qt_launcher.term_service as term_service class JsonTrans(QObject): - languageChanged: Signal = Signal() # Signal QT about the language changes + languageChanged: Signal = Signal() - FALLBACK_LANG: str = "en" + FALLBACK_LANG: str = "translations" def __init__(self, lang_code: str = FALLBACK_LANG): super().__init__() @@ -26,10 +26,10 @@ class JsonTrans(QObject): return try: - with open(file_path, "r", "utf-8") as f: + with open(file_path, "r", encoding="utf-8") as f: self.json_data = json.load(f) self._current_lang = lang_code - self.languageChanged.emit() # Notify the UI + self.languageChanged.emit() except Exception as e: term_service.print_error(f"loading JSON: {e}. Defaulting to English Fallback.") diff --git a/src/main.py b/src/main.py index f5b9886..e9ea6cb 100755 --- a/src/main.py +++ b/src/main.py @@ -42,14 +42,11 @@ if platform.system() == "FreeBSD": _FREEBSD_QT6_PATH = "/usr/local/lib/qt6/plugins" os.environ["QT_PLUGIN_PATH"] = _FREEBSD_QT6_PATH -HELP_STR = """ --h or --help to get this help --v or --version to get the app version --L or --license to get the license information --a or --about to get information about the app --cl or --cli to launch the cli version --g or --gen-config to generate or update the app config -""" +PLAY_BUTTON_LABEL = "play" + +HELP_STR = "help-message" + +ABOUT_STR = "about-message" INSTANCE_MANAGER_LABEL = translator.translate("instance_manager_label") SAVE_INSTANCE_MSG_BOX_LABEL = translator.translate("save_instance_msg_box_label") diff --git a/uv.lock b/uv.lock index d84044c..2765389 100644 --- a/uv.lock +++ b/uv.lock @@ -473,10 +473,11 @@ dependencies = [ { name = "patchelf", marker = "sys_platform == 'linux'" }, { name = "pillow" }, { name = "pip" }, - { name = "pyside6" }, + { name = "pyside6", marker = "sys_platform == 'darwin' or sys_platform == 'linux' or sys_platform == 'win32'" }, { name = "requests" }, { name = "rich" }, { name = "term-image" }, + { name = "walker", marker = "sys_platform == 'win32'" }, ] [package.metadata] @@ -486,10 +487,11 @@ requires-dist = [ { name = "patchelf", marker = "sys_platform == 'linux'" }, { name = "pillow" }, { name = "pip" }, - { name = "pyside6" }, + { name = "pyside6", marker = "sys_platform == 'darwin' or sys_platform == 'linux' or sys_platform == 'win32'" }, { name = "requests" }, { name = "rich" }, { name = "term-image" }, + { name = "walker", marker = "sys_platform == 'win32'" }, ] [[package]] @@ -955,6 +957,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c6/59/7d02447a55b2e55755011a647479041bc92a82e143f96a8195cb33bd0a1c/virtualenv-21.2.0-py3-none-any.whl", hash = "sha256:1bd755b504931164a5a496d217c014d098426cddc79363ad66ac78125f9d908f", size = 5825084, upload-time = "2026-03-09T17:24:35.378Z" }, ] +[[package]] +name = "walker" +version = "0.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/60/27737c77b9447b08baa7796f3ab210e22d4d4bfbdfd4f49a7d932be27efb/walker-0.0.2.tar.gz", hash = "sha256:50d3e3fac38d88383a471e27eff2740ac77a838d577c795997434c597eee333d", size = 11659, upload-time = "2014-09-13T07:37:38.531Z" } + [[package]] name = "zipp" version = "3.23.0"