Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .github/workflows/build_windows_macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,6 @@ jobs:
cd ardupilot_methodic_configurator
copy ..\\windows\\ardupilot_methodic_configurator.spec
pyinstaller --clean ardupilot_methodic_configurator.spec
if (-not (Test-Path "dist\\ardupilot_methodic_configurator\\_internal\\_tcl_data\\init.tcl") -or
-not (Test-Path "dist\\ardupilot_methodic_configurator\\_internal\\_tk_data\\tk.tcl")) {
throw "PyInstaller did not bundle the Tcl/Tk library data."
}
del ardupilot_methodic_configurator.spec

- name: Write the git commit hash to file
Expand Down
12 changes: 6 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -102,22 +102,22 @@ pypi_dist = [
win_dist = [
"pip==26.2.1",
"pywin32==312",
"pyinstaller==6.20.0",
"pyinstaller-hooks-contrib==2026.6",
"pyinstaller==6.22.2",
"pyinstaller-hooks-contrib==2026.7",
"packaging==26.3",
]

mac_dist = [
"pip==26.2.1",
"pyinstaller==6.20.0",
"pyinstaller-hooks-contrib==2026.6",
"pyinstaller==6.22.2",
"pyinstaller-hooks-contrib==2026.7",
"packaging==26.3",
]

linux_dist = [
"pip==26.2.1",
"pyinstaller==6.20.0",
"pyinstaller-hooks-contrib==2026.6",
"pyinstaller==6.22.2",
"pyinstaller-hooks-contrib==2026.7",
"packaging==26.3",
]

Expand Down
22 changes: 0 additions & 22 deletions windows/ardupilot_methodic_configurator.spec
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,6 @@
from PyInstaller.utils.hooks import collect_submodules
import certifi
import os
Comment on lines 4 to 6
from pathlib import Path
import sys


def _find_tcl_tk_library(directory: Path, prefix: str) -> Path:
"""Return the Tcl/Tk library directory shipped with the build Python."""
library_file = "init.tcl" if prefix == "tcl" else "tk.tcl"
candidates = sorted(
(path for path in directory.glob(f"{prefix}*") if path.is_dir() and (path / library_file).is_file()),
reverse=True,
)
if not candidates:
raise SystemExit(f"Could not find {prefix} library data below {directory}")
return candidates[0]


# Set both variables before PyInstaller analyses tkinter so its built-in hook
# collects the library data into _tcl_data and _tk_data. Without this, the
# frozen application contains the DLLs but fails during the tkinter runtime hook.
tcl_root = Path(sys.base_prefix) / "tcl"
os.environ["TCL_LIBRARY"] = str(_find_tcl_tk_library(tcl_root, "tcl"))
os.environ["TK_LIBRARY"] = str(_find_tcl_tk_library(tcl_root, "tk"))

# Path to certifi's CA bundle
certifi_cacert = certifi.where()
Expand Down