Skip to content

Commit 0e808a3

Browse files
author
Adam
committed
fix: Disable UPX compression to resolve DLL loading errors (v1.0.4)
Fixes runtime error: 'invalid access to memory location' when loading python311.dll on Windows systems. Changes: - Disabled UPX compression in build.spec (upx=False) - Disabled symbol stripping for better compatibility (strip=False) - Updated build.py output messages to reflect changes - Bumped version to 1.0.4 - Updated CHANGELOG.md with fix details Trade-off: Executable size increases to ~150-200MB, but stability and compatibility are prioritized over file size. This resolves the issue where the executable would crash on launch with DLL loading errors on some Windows systems.
1 parent ecbea7e commit 0e808a3

6 files changed

Lines changed: 22 additions & 15 deletions

File tree

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,18 @@ All notable changes to TranscribAIr will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.0.4] - 2025-11-13
9+
10+
### Fixed
11+
- Runtime error: Fixed "invalid access to memory location" when loading python311.dll
12+
- Disabled UPX compression which was corrupting DLLs on some systems
13+
- Disabled symbol stripping for better DLL compatibility
14+
- Executable now runs reliably on all Windows systems
15+
16+
### Changed
17+
- Executable size increased (~150-200MB) but with improved stability
18+
- Prioritized compatibility over file size
19+
820
## [1.0.3] - 2025-11-13
921

1022
### Fixed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# TranscribAIr
22

3-
[![Version](https://img.shields.io/badge/version-1.0.3-blue.svg)](https://github.com/otherworld-dev/TranscribAIr/releases)
3+
[![Version](https://img.shields.io/badge/version-1.0.4-blue.svg)](https://github.com/otherworld-dev/TranscribAIr/releases)
44
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
55
[![Python](https://img.shields.io/badge/python-3.9%2B-blue.svg)](https://www.python.org/downloads/)
66

@@ -19,9 +19,9 @@ AI-powered audio transcription with intelligent feedback organization for educat
1919

2020
### For End Users
2121

22-
Download the latest installer: **[TranscribAIr-1.0.3-Setup.exe](https://github.com/otherworld-dev/TranscribAIr/releases/latest)**
22+
Download the latest installer: **[TranscribAIr-1.0.4-Setup.exe](https://github.com/otherworld-dev/TranscribAIr/releases/latest)**
2323

24-
Or get the portable version: **[TranscribAIr-1.0.3-Portable.zip](https://github.com/otherworld-dev/TranscribAIr/releases/latest)**
24+
Or get the portable version: **[TranscribAIr-1.0.4-Portable.zip](https://github.com/otherworld-dev/TranscribAIr/releases/latest)**
2525

2626
### For Developers
2727

__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
TranscribAIr version information.
33
"""
44

5-
__version__ = "1.0.3"
5+
__version__ = "1.0.4"
66
__version_info__ = tuple(int(i) for i in __version__.split("."))
77

88
# Application metadata

build.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,8 @@ def build_executable(ffmpeg_path: str):
106106
print(f"Size: {exe_size:.2f} MB")
107107
print("\nOptimizations applied:")
108108
print(" [OK] Excluded unused packages")
109-
print(" [OK] UPX compression enabled")
110-
print(" [OK] Debug symbols stripped")
109+
print(" [OK] UPX compression disabled (for compatibility)")
110+
print(" [OK] Debug symbols preserved (for stability)")
111111
print(" [OK] FFmpeg bundled ({} executables)".format(
112112
len([f for f in (Path(ffmpeg_path).parent if Path(ffmpeg_path).is_file() else Path(ffmpeg_path)).glob('*.exe')])
113113
))

build.spec

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,9 @@ exe = EXE(
8989
name='Transcribair',
9090
debug=False,
9191
bootloader_ignore_signals=False,
92-
strip=True, # Strip symbols to reduce size (safe for Python)
93-
upx=True, # Enable UPX compression
94-
upx_exclude=[
95-
# Exclude files that don't compress well or cause issues
96-
'vcruntime140.dll',
97-
'python*.dll',
98-
'Qt*.dll',
99-
],
92+
strip=False, # Disable stripping to avoid DLL issues
93+
upx=False, # Disable UPX - causes DLL loading issues on some systems
94+
upx_exclude=[],
10095
runtime_tmpdir=None,
10196
console=False, # Set to False for windowed app (no console)
10297
disable_windowed_traceback=False,

installer.iss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
; The installer will be created in the Output directory
1010

1111
#define MyAppName "TranscribAIr"
12-
#define MyAppVersion "1.0.3"
12+
#define MyAppVersion "1.0.4"
1313
#define MyAppPublisher "Swansea University"
1414
#define MyAppURL "https://github.com/otherworld-dev/TranscribAIr"
1515
#define MyAppExeName "Transcribair.exe"

0 commit comments

Comments
 (0)