Adds the PyQt6 Windows client (Homepage, Scan & results, About & updates, Settings), ClamAV scanning and quarantine, browser-download watch with an exclusive scan gate, Bolt loopback/PKCE sign-in with DPAPI key storage, Gitea release feed with checksum verification, opt-in diagnostics, and Windows/portable build tooling. Co-Authored-By: Claude Code <noreply@anthropic.com>
80 lines
1.8 KiB
RPMSpec
80 lines
1.8 KiB
RPMSpec
# -*- mode: python ; coding: utf-8 -*-
|
|
"""PyInstaller spec for BoltClam.
|
|
|
|
Default: a one-folder Windows build (dist/BoltClam/BoltClam.exe), which is
|
|
what the Inno Setup installer packages. Set BOLTCLAM_ONEFILE=1 for a single
|
|
BoltClam.exe instead.
|
|
"""
|
|
|
|
from pathlib import Path
|
|
import os
|
|
import sys
|
|
|
|
ROOT = Path(SPECPATH).resolve()
|
|
ONE_FILE = os.environ.get("BOLTCLAM_ONEFILE") == "1"
|
|
VERSION_FILE = ROOT / "resources" / "version_info.txt"
|
|
ICON_FILE = ROOT / "resources" / "boltclam.ico"
|
|
|
|
a = Analysis(
|
|
[str(ROOT / "src" / "boltclam" / "__main__.py")],
|
|
pathex=[str(ROOT / "src")],
|
|
binaries=[],
|
|
datas=[(str(ROOT / "resources"), "resources")],
|
|
hiddenimports=[
|
|
"PyQt6.QtCore",
|
|
"PyQt6.QtGui",
|
|
"PyQt6.QtWidgets",
|
|
"PyQt6.sip",
|
|
],
|
|
hookspath=[],
|
|
hooksconfig={},
|
|
runtime_hooks=[],
|
|
excludes=["tkinter", "unittest", "pydoc"],
|
|
noarchive=False,
|
|
optimize=1,
|
|
)
|
|
pyz = PYZ(a.pure)
|
|
|
|
exe_kwargs = dict(
|
|
name="BoltClam",
|
|
debug=False,
|
|
bootloader_ignore_signals=False,
|
|
strip=False,
|
|
upx=False,
|
|
console=False,
|
|
disable_windowed_traceback=False,
|
|
argv_emulation=False,
|
|
target_arch=None,
|
|
codesign_identity=None,
|
|
entitlements_file=None,
|
|
icon=str(ICON_FILE) if ICON_FILE.exists() else None,
|
|
version=str(VERSION_FILE) if sys.platform == "win32" and VERSION_FILE.exists() else None,
|
|
)
|
|
|
|
if ONE_FILE:
|
|
exe = EXE(
|
|
pyz,
|
|
a.scripts,
|
|
a.binaries,
|
|
a.datas,
|
|
[],
|
|
**exe_kwargs,
|
|
)
|
|
else:
|
|
exe = EXE(
|
|
pyz,
|
|
a.scripts,
|
|
[],
|
|
exclude_binaries=True,
|
|
**exe_kwargs,
|
|
)
|
|
coll = COLLECT(
|
|
exe,
|
|
a.binaries,
|
|
a.datas,
|
|
strip=False,
|
|
upx=False,
|
|
upx_exclude=[],
|
|
name="BoltClam",
|
|
)
|