commit 0b936b86cd782c05e9e698b4d1524fafdaff39e0 Author: Фофанов Дмитрий Викторович Date: Tue Sep 1 11:52:01 2026 +0300 Initial Russian Winbox macOS launcher diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e6e900e --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.DS_Store +Releases/ +*.dmg +*.zip +Winbox-mac.app/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..8deb990 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2021 nrlquaker +Copyright (c) 2026 Dmitry Fofanov + +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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..1d009e9 --- /dev/null +++ b/README.md @@ -0,0 +1,92 @@ +# Winbox macOS Wrapper + +Небольшая оболочка для запуска официального `winbox64.exe` в Wine на macOS. +Проект восстановлен по идее и launcher-скрипту [nrlquaker/winbox-mac](https://github.com/nrlquaker/winbox-mac), но намеренно не распространяет готовый `.app`, Wine, Winbox.exe или другие сторонние бинарники. + +## Для чего нужен + +Скрипт задаёт отдельный Wine-префикс и запускает указанный пользователем файл Winbox. +Это позволяет не смешивать настройки Winbox с другими Wine-приложениями и удобно +передавать стандартные аргументы запуска. + +Проект **не является официальным продуктом MikroTik** и не связан с MikroTik. +Winbox, Wine и их товарные знаки принадлежат соответствующим правообладателям. + +## Что входит и чего нет + +В репозитории есть только Bash-скрипт запуска и документация. В нём нет: + +- `winbox64.exe`; +- Wine или его библиотек; +- готового macOS-приложения, установщика DMG или ZIP-релиза; +- сохранённых учётных данных, адресов роутеров и конфигураций. + +Winbox следует получить с официального сайта MikroTik, а Wine — установить из +проверенного вами источника. Это важно и для безопасности, и для соблюдения +условий распространения сторонних компонентов. + +## Требования + +- macOS; +- установленный `wine64`, совместимый с вашим Mac; +- локальный путь к официальному `winbox64.exe`; +- Bash 3.2 или новее. + +На Apple Silicon используйте сборку Wine, которая поддерживает нужную вам +архитектуру; проект не поставляет Rosetta, Wine или готовые runtime-библиотеки. + +## Быстрый запуск + +```bash +git clone https://github.dfv24.com/fofanov.dmitry/winbox-macos-wrapper.git +cd winbox-macos-wrapper +chmod +x bin/winbox-macos + +WINBOX_EXE="$HOME/Downloads/winbox64.exe" ./bin/winbox-macos +``` + +По умолчанию Wine-префикс создаётся в +`~/Library/Application Support/com.mikrotik.winbox`. Чтобы изолировать тестовую +установку, передайте другой путь: + +```bash +WINEPREFIX="$HOME/Library/Application Support/com.example.winbox-test" \ +WINBOX_EXE="$HOME/Downloads/winbox64.exe" \ +./bin/winbox-macos +``` + +## Параметры и переменные окружения + +| Переменная | Назначение | Значение по умолчанию | +|---|---|---| +| `WINBOX_EXE` | Обязательный абсолютный или относительный путь к `winbox64.exe` | нет | +| `WINE64_BIN` | Исполняемый файл Wine | `wine64` из `PATH` | +| `WINEPREFIX` | Каталог настроек Wine | `~/Library/Application Support/com.mikrotik.winbox` | +| `WINEDEBUG` | Уровень диагностического вывода Wine | `fixme-esync` | + +Аргументы после имени скрипта передаются Winbox без изменений. Не передавайте +пароли в аргументах командной строки: они могут быть видны в списке процессов и +истории оболочки. + +```bash +WINBOX_EXE="$HOME/Downloads/winbox64.exe" \ +./bin/winbox-macos 192.0.2.1 admin +``` + +## Проверка + +Проверить синтаксис launcher-скрипта можно без Wine и Winbox: + +```bash +bash -n bin/winbox-macos +``` + +При запуске скрипт проверяет наличие Wine и файла Winbox до создания процесса. + +## Происхождение и лицензия + +Основа запуска и идея отдельного Wine-префикса взяты из +[`nrlquaker/winbox-mac`](https://github.com/nrlquaker/winbox-mac), лицензированного +по MIT. Изменённый код и документация также распространяются по [MIT License](LICENSE). +Лицензия относится только к коду этого репозитория; она не предоставляет прав на +Winbox, Wine или другие сторонние компоненты. diff --git a/bin/winbox-macos b/bin/winbox-macos new file mode 100755 index 0000000..47c8ae8 --- /dev/null +++ b/bin/winbox-macos @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# Запускает пользовательский Winbox в отдельном Wine-префиксе macOS. + +set -euo pipefail + +# Winbox не включён в репозиторий: пользователь явно выбирает официальный файл. +: "${WINBOX_EXE:?Укажите путь к winbox64.exe через WINBOX_EXE}" +WINE64_BIN="${WINE64_BIN:-wine64}" +WINEPREFIX="${WINEPREFIX:-$HOME/Library/Application Support/com.mikrotik.winbox}" +WINEDEBUG="${WINEDEBUG:-fixme-esync}" + +if ! command -v "$WINE64_BIN" >/dev/null 2>&1; then + printf 'Не найден Wine: %s\n' "$WINE64_BIN" >&2 + exit 127 +fi + +if [[ ! -f "$WINBOX_EXE" ]]; then + printf 'Не найден файл Winbox: %s\n' "$WINBOX_EXE" >&2 + exit 66 +fi + +# Эти переменные повторяют минимально необходимые настройки исходного launcher. +export LC_CTYPE="en_US.UTF-8" +export WINEDLLOVERRIDES="mscoree,mshtml=" +export WINEDEBUG WINEPREFIX + +exec "$WINE64_BIN" "$WINBOX_EXE" "$@"