release: restore ZUPT and harden source-only 5.2.2
This commit is contained in:
parent
74e393ba3e
commit
ff99770bd0
205 changed files with 19627 additions and 13215 deletions
|
|
@ -1,57 +1,59 @@
|
|||
VaptVupt GUI — portable cross-platform package
|
||||
==============================================
|
||||
ZUPT GUI — source-only portable launcher template
|
||||
=====================================================
|
||||
|
||||
The VaptVupt GUI is a single Python file (zupt_gui.py) built on Qt for Python
|
||||
(PySide6, or PyQt6 as a fallback). It runs on Windows, macOS, Linux and the
|
||||
BSDs — anywhere Python 3 and a Qt binding are installed. This portable package
|
||||
contains the GUI plus a launcher for each platform; it drives the `vaptvupt`
|
||||
command-line tool under the hood.
|
||||
This tracked directory contains three launcher templates and this assembly
|
||||
guide; it is not a complete bundle by itself. A downstream source-only bundle
|
||||
may add the integrated Python GUI source and artwork listed below, together
|
||||
with the required license/provenance files. It must not contain Python, Qt, a
|
||||
precompiled ZUPT command, or a vendored library. Its presence in a release
|
||||
would not be evidence that every target operating system was tested; consult
|
||||
that release's validation matrix.
|
||||
|
||||
Contents
|
||||
--------
|
||||
zupt_gui.py The GUI (PySide6 / PyQt6).
|
||||
vaptvupt-gui.bat Windows launcher.
|
||||
vaptvupt-gui.command macOS launcher (double-clickable in Finder).
|
||||
vaptvupt-gui.sh Linux / BSD launcher.
|
||||
assets/zupt-icon.png Application icon.
|
||||
zupt_gui.py GUI source module (the historical module filename is
|
||||
retained internally for source compatibility).
|
||||
zupt-gui.bat Windows launcher.
|
||||
zupt-gui.command macOS Finder launcher.
|
||||
zupt-gui.sh POSIX shell launcher.
|
||||
assets/zupt-icon.png PNG application artwork.
|
||||
assets/zupt.ico Windows application artwork.
|
||||
LICENSE-AGPL-3.0 Complete current GUI source license text.
|
||||
LICENSE-GUI GUI licensing and historical-license note.
|
||||
ASSET-PROVENANCE.md Artwork purpose, provenance, and license record.
|
||||
CHANGELOG.md Release history and current compatibility notes.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
1. Python 3.8 or newer.
|
||||
Windows: https://python.org (tick "Add python.exe to PATH")
|
||||
macOS: python.org, or `brew install python`
|
||||
Linux: your distro's python3 package
|
||||
FreeBSD: pkg install python311
|
||||
OpenBSD: pkg_add python%3
|
||||
2. A Qt binding:
|
||||
pip (any OS): python3 -m pip install PySide6
|
||||
Debian/Ubuntu: sudo apt install python3-pyqt6
|
||||
Fedora/RHEL: sudo dnf install python3-pyqt6
|
||||
FreeBSD: pkg install py311-pyside6
|
||||
OpenBSD: pkg_add py3-pyside6
|
||||
3. The vaptvupt CLI, either:
|
||||
* placed next to the launcher (vaptvupt.exe on Windows, vaptvupt
|
||||
elsewhere) — the launcher auto-detects it via VAPTVUPT_BIN, or
|
||||
* installed on PATH (deb/rpm/AppImage/Homebrew/pkg — see the project
|
||||
release page).
|
||||
1. Python 3.9 or newer.
|
||||
2. PySide6 6.5 or newer, or a compatible PyQt6 package.
|
||||
3. ZUPT 5.2.2, installed as `zupt` on PATH or placed beside the launcher
|
||||
(`zupt.exe` on Windows). A local command must have been built
|
||||
and tested independently; this bundle never downloads one.
|
||||
|
||||
Running
|
||||
-------
|
||||
Windows: double-click vaptvupt-gui.bat
|
||||
macOS: double-click vaptvupt-gui.command
|
||||
(first run: right-click > Open to bypass Gatekeeper for an
|
||||
unsigned script, or `xattr -dr com.apple.quarantine .`)
|
||||
Linux/BSD: ./vaptvupt-gui.sh
|
||||
Windows: zupt-gui.bat
|
||||
macOS: zupt-gui.command
|
||||
POSIX: ./zupt-gui.sh
|
||||
|
||||
The launchers set ZUPT_BIN when a local command is present. The GUI then
|
||||
checks `zupt version`, discovers native and optional capabilities, and
|
||||
exposes SDK or PQ-box modes only when the command reports the corresponding
|
||||
system-library integration enabled.
|
||||
|
||||
Troubleshooting
|
||||
---------------
|
||||
* "requires PySide6 or PyQt6" -> install a Qt binding (requirement 2).
|
||||
* "vaptvupt not found" -> put the CLI next to the launcher or on PATH.
|
||||
* Set VAPTVUPT_DEBUG=1 to print the binary-discovery log to stderr.
|
||||
* "requires PySide6 or PyQt6": install one Qt binding through your operating
|
||||
system package manager or another trusted, preconfigured Python source.
|
||||
* "zupt not found": install ZUPT 5.2.2 or place its command beside
|
||||
the launcher.
|
||||
* Set ZUPT_DEBUG=1 to print command-discovery diagnostics to stderr.
|
||||
|
||||
Fully self-contained native installers (Windows .exe/.msi, macOS .dmg) that
|
||||
bundle Python + Qt + the CLI are produced by the project's CI on real Windows
|
||||
and macOS runners — see the release page. This portable package is the
|
||||
dependency-light option that works identically on every platform.
|
||||
The old user-facing command name is not installed by this bundle. The `.zupt`
|
||||
archive extension remains unchanged for format compatibility.
|
||||
|
||||
License: AGPL-3.0-or-later. Project: https://git.securityops.co/cristiancmoises/vaptvupt
|
||||
Current GUI source license: AGPL-3.0-or-later. Published historical revisions
|
||||
include MIT grants for the exact material covered by their notices; see
|
||||
LICENSE-GUI and the 5.2.2 erratum in CHANGELOG.md.
|
||||
Project: https://github.com/cristiancmoises/zupt
|
||||
|
|
|
|||
|
|
@ -1,17 +0,0 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
# VaptVupt GUI launcher for macOS (portable package).
|
||||
# Double-clickable in Finder (.command). Requirements on the target Mac:
|
||||
# * Python 3.8+ (python.org, Homebrew `brew install python`, or Xcode CLT)
|
||||
# * PySide6 or PyQt6: python3 -m pip install PySide6
|
||||
# * The vaptvupt CLI: `vaptvupt` next to this file, or on PATH
|
||||
# (Homebrew: `brew install cristiancmoises/tap/vaptvupt`).
|
||||
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
[ -x "$HERE/vaptvupt" ] && export VAPTVUPT_BIN="$HERE/vaptvupt"
|
||||
|
||||
PY="$(command -v python3 || command -v python || true)"
|
||||
if [ -z "$PY" ]; then
|
||||
osascript -e 'display alert "VaptVupt GUI" message "Python 3 not found. Install it from python.org or `brew install python`, then run: python3 -m pip install PySide6"' 2>/dev/null
|
||||
echo "Python 3 not found." >&2; exit 1
|
||||
fi
|
||||
exec "$PY" "$HERE/zupt_gui.py" "$@"
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
@echo off
|
||||
rem SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
rem VaptVupt GUI launcher for Windows (portable package).
|
||||
rem ZUPT GUI launcher for Windows (portable package).
|
||||
rem
|
||||
rem Requirements on the target machine:
|
||||
rem * Python 3.8+ (https://python.org — tick "Add python.exe to PATH")
|
||||
rem * Python 3.9+
|
||||
rem * PySide6 or PyQt6: py -m pip install PySide6
|
||||
rem * The vaptvupt CLI: vaptvupt.exe next to this file, or on PATH.
|
||||
rem * The ZUPT CLI: zupt.exe next to this file, or on PATH.
|
||||
rem
|
||||
rem If vaptvupt.exe sits beside this launcher we pin it via VAPTVUPT_BIN so the
|
||||
rem If zupt.exe sits beside this launcher we pin it via ZUPT_BIN so the
|
||||
rem GUI drives the bundled CLI rather than any other copy on PATH.
|
||||
setlocal
|
||||
set "HERE=%~dp0"
|
||||
if exist "%HERE%vaptvupt.exe" set "VAPTVUPT_BIN=%HERE%vaptvupt.exe"
|
||||
if exist "%HERE%zupt.exe" set "ZUPT_BIN=%HERE%zupt.exe"
|
||||
|
||||
rem Prefer the py launcher, fall back to python on PATH.
|
||||
where py >nul 2>nul
|
||||
|
|
@ -23,9 +23,8 @@ if %ERRORLEVEL%==0 (
|
|||
set "RC=%ERRORLEVEL%"
|
||||
if not "%RC%"=="0" (
|
||||
echo.
|
||||
echo vaptvupt-gui exited with code %RC%.
|
||||
echo zupt-gui exited with code %RC%.
|
||||
echo If you saw an import error, install the Qt binding: py -m pip install PySide6
|
||||
echo If the CLI was not found, put vaptvupt.exe next to this launcher or on PATH.
|
||||
pause
|
||||
echo If the CLI was not found, put zupt.exe next to this launcher or on PATH.
|
||||
)
|
||||
endlocal
|
||||
endlocal & exit /b %RC%
|
||||
17
packaging/portable/zupt-gui.command
Executable file
17
packaging/portable/zupt-gui.command
Executable file
|
|
@ -0,0 +1,17 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
# ZUPT GUI launcher for macOS (portable package).
|
||||
# Double-clickable in Finder (.command). Requirements on the target Mac:
|
||||
# * Python 3.9+
|
||||
# * PySide6 or PyQt6: python3 -m pip install PySide6
|
||||
# * The ZUPT CLI: `zupt` next to this file, or on PATH
|
||||
# (Homebrew: `brew install cristiancmoises/tap/zupt`).
|
||||
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
[ -x "$HERE/zupt" ] && export ZUPT_BIN="$HERE/zupt"
|
||||
|
||||
PY="$(command -v python3 || command -v python || true)"
|
||||
if [ -z "$PY" ]; then
|
||||
osascript -e 'display alert "ZUPT GUI" message "Python 3.9 or newer was not found. Install Python and a trusted PySide6 or PyQt6 package."' 2>/dev/null
|
||||
echo "Python 3 not found." >&2; exit 1
|
||||
fi
|
||||
exec "$PY" "$HERE/zupt_gui.py" "$@"
|
||||
10
packaging/portable/vaptvupt-gui.sh → packaging/portable/zupt-gui.sh
Normal file → Executable file
10
packaging/portable/vaptvupt-gui.sh → packaging/portable/zupt-gui.sh
Normal file → Executable file
|
|
@ -1,21 +1,21 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
# VaptVupt GUI launcher for Linux and the BSDs (portable package).
|
||||
# ZUPT GUI launcher for Linux and the BSDs (portable package).
|
||||
# Requirements on the target system:
|
||||
# * Python 3.8+
|
||||
# * Python 3.9+
|
||||
# * PySide6 or PyQt6
|
||||
# Debian/Ubuntu: sudo apt install python3-pyqt6
|
||||
# Fedora/RHEL: sudo dnf install python3-pyqt6
|
||||
# FreeBSD: pkg install py311-pyside6 (or py311-qt6-pyqt)
|
||||
# OpenBSD: pkg_add py3-pyside6
|
||||
# any OS via pip: python3 -m pip install PySide6
|
||||
# * The vaptvupt CLI: `vaptvupt` next to this file, or on PATH.
|
||||
# * The ZUPT CLI: `zupt` next to this file, or on PATH.
|
||||
HERE="$(cd "$(dirname "$0")" && pwd)"
|
||||
[ -x "$HERE/vaptvupt" ] && export VAPTVUPT_BIN="$HERE/vaptvupt"
|
||||
[ -x "$HERE/zupt" ] && export ZUPT_BIN="$HERE/zupt"
|
||||
|
||||
PY="$(command -v python3 || command -v python || true)"
|
||||
if [ -z "$PY" ]; then
|
||||
echo "vaptvupt-gui: Python 3 not found on PATH." >&2
|
||||
echo "zupt-gui: Python 3 not found on PATH." >&2
|
||||
exit 1
|
||||
fi
|
||||
exec "$PY" "$HERE/zupt_gui.py" "$@"
|
||||
Loading…
Reference in a new issue