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
19 changes: 19 additions & 0 deletions installer/BnRinstall_script-win/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Python
__pycache__/
*.pyc
*.pyo
*.pyd
*.log

# Build and state
openshot-installer.log
openshot-installer-relay.log
openshot-installer-state.json
OpenShotBuild/
*.zip

# Editor / OS noise
.DS_Store
Thumbs.db
.vscode/
.idea/
10 changes: 10 additions & 0 deletions installer/BnRinstall_script-win/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# CHANGELOG.md

## 1.0.1

- trimmed the package to feel more like an OpenShot contribution
- kept the BnR identity, author credit, consultation line, and ChatGPT credit
- clarified that BnR complements OpenShot's installer instead of replacing it
- removed decorative image assets and the placeholder local jQuery file from the help page package
- added contribution-oriented notes aligned with OpenShot's GitHub workflow
- ensured the local docs set is internally consistent for command and help references
7 changes: 7 additions & 0 deletions installer/BnRinstall_script-win/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# CODE_OF_CONDUCT.md

Be respectful, specific, and useful.

This helper exists to reduce wasted time in the OpenShot Windows source-build workflow. Review and discussion should stay focused on reproducible behavior, logs, build steps, and practical fixes.

Treat the OpenShot project and contributors with respect.
19 changes: 19 additions & 0 deletions installer/BnRinstall_script-win/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# CONTRIBUTING.md

This helper is intended to fit into the OpenShot contribution workflow. The upstream OpenShot rules are the primary guide:

- OpenShot repository: https://github.com/OpenShot/openshot-qt
- OpenShot contributing guide: https://github.com/OpenShot/openshot-qt/blob/develop/CONTRIBUTING.md

## Recommended flow

1. Branch from `develop`.
2. Keep the changes focused and explain the problem clearly.
3. Open a pull request against `develop`.
4. Use draft / WIP status if the work still needs feedback or testing.

## For this helper specifically

The cleanest framing is that this is a Windows bootstrap/build helper for source builds. It supports the OpenShot workflow, but it does not replace the official packaging installer.

When reporting bugs or requesting feedback, include the OS and attach relevant log files.
104 changes: 104 additions & 0 deletions installer/BnRinstall_script-win/INSTALL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# INSTALL.md

## Purpose

This guide is for running **OpenShot BnR 1.0.1** on Windows and using it to bootstrap, build, verify, and launch OpenShot from source.

This helper is meant to complement the OpenShot project's existing installer and packaging work. It is most useful when you are trying to get a Windows source-build environment working end to end on a stock or half-broken Windows machine and you want readable logs instead of guesswork.

## How this differs from the official installer

OpenShot already ships official installer and packaging tooling. That upstream tooling is for packaging and release work.

**OpenShot BnR is different:** it focuses on restoring prerequisites, cloning the repos, building native dependencies, verifying the bindings, and generating launch helpers so a source build actually runs on stock Windows.

## Upstream attribution

OpenShot project links:

- Website: https://www.openshot.org/
- Source repository: https://github.com/OpenShot/openshot-qt
- Developer docs: https://www.openshot.org/static/files/user-guide/developers.html

## Before you start

You should have:

- Windows 10 or later
- internet access for package resolution and repository pulls
- a Python 3 interpreter available through `py -3` or `python`
- permission to elevate when the script requests admin access

## Fast path

```bash
py -3 OpenShot_BnR_v1_0.py
```

The script will:
1. check Windows support and elevation
2. find or restore WinGet, Git, and MSYS2
3. refresh MSYS2 and resolve dependencies against the live UCRT64 package list
4. clone or update the OpenShot repositories
5. build `libopenshot-audio`
6. build `libopenshot`
7. verify Python bindings in installed and source-build modes
8. generate launcher and distribution helper files

## Information-only commands

```bash
py -3 OpenShot_BnR_v1_0.py --usage
py -3 OpenShot_BnR_v1_0.py --help
py -3 OpenShot_BnR_v1_0.py man
py -3 OpenShot_BnR_v1_0.py --about
py -3 OpenShot_BnR_v1_0.py --version
py -3 OpenShot_BnR_v1_0.py --docs
py -3 OpenShot_BnR_v1_0.py --install
py -3 OpenShot_BnR_v1_0.py --manual-install
py -3 OpenShot_BnR_v1_0.py --log-guide
py -3 OpenShot_BnR_v1_0.py --troubleshoot
py -3 OpenShot_BnR_v1_0.py --license
py -3 OpenShot_BnR_v1_0.py --debug
```

## What gets created

Common outputs include:

- `C:\OpenShotBuild\Launch-OpenShot-Qt.cmd`
- `C:\OpenShotBuild\Launch-OpenShot-Qt.py`
- portable/frozen build helper scripts
- `openshot-installer.log`
- `openshot-installer-state.json`
- `openshot-installer-relay.log`

## What success looks like

A good result looks like this:

- the prerequisite, dependency, repo, and build stages pass
- the bindings import successfully in installed or source-build mode
- launcher files are generated
- OpenShot reaches a real UI startup path
- the session log reads like a real launch, not a fake smoke test

## Troubleshooting basics

### `ModuleNotFoundError: No module named 'openshot'`
The runtime bootstrap path is wrong or incomplete. Check the generated launcher files and the runtime bootstrap section of the log.

### `winget` missing
The script tries to restore or guide the WinGet/App Installer path, but locked-down systems may still need manual setup. See `MANUAL_INSTALL.md`.

### MSYS2 packages fail or drift
The helper reads against live UCRT64 package data. If the machine is stale or partially broken, finish the MSYS2 update cycle manually first, then rerun.

## Notes for upstream review

This package intentionally keeps the OpenShot attribution visible because the point is to support the OpenShot workflow, not hijack it.


## OpenShot pull request fit

This helper is packaged to fit OpenShot's usual GitHub contribution flow: make changes in a branch based on `develop`, open a PR to `develop`, and explain clearly that this helper complements the existing packaging installer by focusing on stock-Windows source builds. If the work is still under review, a draft / WIP PR is appropriate.
21 changes: 21 additions & 0 deletions installer/BnRinstall_script-win/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 Trenton Tompkins

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.
130 changes: 130 additions & 0 deletions installer/BnRinstall_script-win/LOG_GUIDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
# Log Guide and Step-by-Step Walkthrough

This project lives or dies on whether the log tells the truth. The installer is strongest when the summary, artifacts, and runtime log all agree.

## A successful OpenShot runtime log means this

If you see a log like the one below, that means the build made it through the expensive parts and OpenShot actually launched.

```text
Loaded modules from: C:\OpenShotBuild\openshot-qt\src
INFO app: OpenShot (version 3.5.1)
INFO app: libopenshot version: 0.7.0
INFO ui_util: Initializing UI for MainWindow
INFO preview_thread: QThread Start Method Invoked
INFO app: OpenShot's session ended
```

That is not a fake pass. That is a real launch.

## Walkthrough of the successful runtime sequence

### `Loaded modules from: C:\OpenShotBuild\openshot-qt\src`
The launcher found the OpenShot Python application source tree and added it to the module search path.

### `INFO app: Starting new session`
OpenShot booted into a fresh app session. You are past the launcher and into the application.

### `INFO app: OpenShot (version 3.5.1)`
The Python app started and is reporting its own version. That means the top-level OpenShot app code is alive.

### `INFO app: libopenshot version: 0.7.0`
The Python app was able to talk to the native `libopenshot` binding. This is one of the biggest milestones in the whole build.

### `INFO app: python version: ... / qt5 version: ... / pyqt5 version: ...`
These lines tell you the active runtime stack. They are useful when you need to compare a working box with a failing one.

### `INFO project_data: Setting profile to HD 720p 30 fps`
Default project data loaded correctly.

### `INFO language: ...`
Language detection ran. Usually harmless and informational.

### `INFO logger_libopenshot: Connecting to libopenshot with debug port: 5556`
The Python side connected to the native logging/debug interface.

### `INFO ui_util: Initializing UI for MainWindow`
The actual desktop UI is being assembled. This is the line that tells you the app made it past imports and into real GUI startup.

### `INFO thumbnail: Starting thumbnail server listening on ...`
Background support services are starting. Normal.

### `WARNING updates: Cannot add existing listener ...`
This is noisy, but not fatal. It means a listener registration was attempted twice.

### `INFO sentry: Sentry initialized ...`
Error reporting initialized successfully. Nice to have, not required for a launch.

### `INFO generation_service: ComfyUI check failed at 127.0.0.1:8188 ...`
This is also not a launch blocker. It just means a local ComfyUI service was not running.

### `INFO main_window: InitCacheSettings` and cache lines
The app is configuring preview/cache behavior. This is normal startup work.

### `INFO preview_thread: QThread Start Method Invoked`
The preview/render thread came online.

### `INFO main_window: Cleared temporary files: ...`
The app cleaned its temp folders. Good housekeeping, not a warning.

### `INFO theme: Setting Fusion dark palette`
The UI theme loaded.

### `INFO main_window: recover_backup`
The app checked for recovery state/backups.

### `INFO video_widget: ...`
The preview widget initialized and knows its aspect ratio.

### `INFO timeline: Adjusting max size of preview image ...`
Timeline preview resources are live.

### Shutdown block

```text
INFO main_window: ---------------- Shutting down -----------------
INFO thumbnail: Shutting down thumbnail server
INFO logger_libopenshot: Shutting down libopenshot logger
INFO preview_thread: Stopping preview thread
INFO app: OpenShot's session ended
```

This is a clean shutdown sequence. It means the app did not just vanish; it exited and tore down its background pieces deliberately.

## Installer stage summary walkthrough

The installer summary is the other half of the truth.

### `PASS Prerequisites`
Windows support, admin/elevation path, WinGet, Git, and MSYS2 are ready.

### `PASS Dependencies`
The script updated MSYS2 metadata, read the live UCRT64 package list, and resolved/install the package capabilities it needed.

### `PASS Repositories`
The OpenShot source repositories are present.

### `PASS Build libopenshot-audio`
The audio layer built and installed.

### `PASS Build libopenshot`
The native video/binding layer built and the source-build import probe worked.

### `PASS Prepare openshot-qt`
The runtime bootstrap files were created and the launcher smoke test succeeded.

### `PASS Verification`
The build artifacts and launch route looked good enough to treat the run as ready.

## Fastest way to use the log when something breaks

1. Read the stage summary first.
2. Read the artifacts block next.
3. Open `openshot-installer.log`.
4. Search for the first red/FAIL line, not the last dramatic line.
5. Compare against the successful runtime flow above.

The first meaningful deviation is usually where the real problem starts.


See also: RELEASE_GUIDE.md for the public-release checklist and final QA pass.
Loading