You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
if [[ "$COUNT" -eq 0 ]]; then MISSING+=("$ext"); fi
538
+
done
539
+
if [[ "${#MISSING[@]}" -gt 0 ]]; then
540
+
echo "::error::No artifact produced for: ${MISSING[*]} — check the target list in package.json's build:linux, which overrides linux.target in electron-builder.json5"
541
+
find release -maxdepth 2 -type f -print
542
+
exit 1
543
+
fi
544
+
519
545
- name: Upload Linux packages
520
546
uses: actions/upload-artifact@v7
521
547
with:
@@ -524,6 +550,7 @@ jobs:
524
550
release/**/*.AppImage
525
551
release/**/*.deb
526
552
release/**/*.pacman
553
+
release/**/*.rpm
527
554
# No *.zsync: nothing produces one. zsync is electron-updater's delta format,
528
555
# this repo has no updater (no electron-updater, no autoUpdater, no
529
556
# latest-linux.yml), and app-builder-lib 26.x dropped zsync entirely in favour
Copy file name to clipboardExpand all lines: README.md
+8-3Lines changed: 8 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -83,16 +83,21 @@ Download the `.exe` installer directly from the [Releases page](https://github.c
83
83
84
84
### Linux
85
85
86
-
Three packages are published to the [Releases page](https://github.com/getopenscreen/openscreen/releases) for each version. Pick the one that matches your distro:
86
+
Four packages are published to the [Releases page](https://github.com/getopenscreen/openscreen/releases) for each version. Pick the one that matches your distro:
"build:win": "npm run build:native:win && npm run fetch:ffmpeg && npm run build:native:compositor && tsc && vite build && electron-builder --win --config.npmRebuild=false",
45
45
"build:win:store": "npm run build:native:win && npm run fetch:ffmpeg && npm run build:native:compositor && tsc && vite build && electron-builder --win appx --config.npmRebuild=false",
46
-
"build:linux": "npm run fetch:ffmpeg:sdk && npm run build:native:linux && npm run build:native:compositor:linux && tsc && vite build && electron-builder --linux AppImage deb pacman --config.npmRebuild=false",
46
+
"build:linux": "npm run fetch:ffmpeg:sdk && npm run build:native:linux && npm run build:native:compositor:linux && tsc && vite build && electron-builder --linux AppImage deb pacman rpm --config.npmRebuild=false",
Copy file name to clipboardExpand all lines: technical-documentation/engineering/build-and-packaging.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ OpenScreen builds its renderer, Electron main process, preload bridge, native he
12
12
|`npm run build:mac`| Builds the ScreenCaptureKit and cursor helpers, checks TypeScript, runs Vite, and packages the macOS target. |
13
13
|`npm run build:win`| Builds WGC/cursor helpers and the D3D11 compositor addon, fetches FFmpeg, checks TypeScript, runs Vite, and packages the Windows NSIS target without npm rebuild. |
14
14
|`npm run build:win:store`| Performs the Windows native and renderer build, then asks electron-builder for the configured AppX Store package. |
15
-
|`npm run build:linux`| Checks TypeScript, runs Vite, then packages AppImage, Debian, and pacman artifacts without npm rebuild. |
15
+
|`npm run build:linux`| Checks TypeScript, runs Vite, then packages AppImage, Debian, pacman, and RPM artifacts without npm rebuild. Its explicit `--linux` target list overrides `linux.target` in `electron-builder.json5`, so a target added to the config alone is never built. |
16
16
|`npm run build:native:mac`| Uses SwiftPM to build requested single-architecture ScreenCaptureKit and macOS cursor helpers and stages them under `electron/native/bin/darwin-*`. |
17
17
|`npm run build:native:win`| Uses CMake/Ninja in an MSVC environment to build WGC capture and cursor-sampler executables and stage x64 binaries. |
18
18
|`npm run build:native:compositor`| Uses Cargo/MSVC and the pinned shared FFmpeg SDK to build `compositor_view.node`. |
@@ -124,7 +124,7 @@ Electron-builder targets DMG for both `arm64` and `x64`, enables hardened runtim
124
124
125
125
### Linux and Nix
126
126
127
-
Electron-builder produces AppImage, `.deb`, and `.pacman` targets. The flake separately supports `x86_64-linux` and `aarch64-linux`, offers NixOS and Home Manager modules, and builds a wrapper around nixpkgs' system Electron. `nix/package.nix` runs Vite directly, installs `dist/`, `dist-electron/`, production npm dependencies, wallpapers, icons, and a desktop entry; it does not invoke electron-builder. The release workflow later opens a PR to update the Nix package version and npm dependency hash after stable releases.
127
+
Electron-builder produces AppImage, `.deb`, `.pacman`, and `.rpm` targets. Each fpm target carries its own `depends` list, which *replaces* electron-builder's default rather than extending it; all three package formats therefore repeat that default verbatim before adding the Vulkan ICD (`mesa-vulkan-drivers`, `vulkan-swrast` on Arch) the native compositor needs. The RPM list also restores `libsecret`, which electron-builder includes in its `deb` default but omits from its `rpm` one, and which `safeStorage` needs to encrypt LLM credentials. The flake separately supports `x86_64-linux` and `aarch64-linux`, offers NixOS and Home Manager modules, and builds a wrapper around nixpkgs' system Electron. `nix/package.nix` runs Vite directly, installs `dist/`, `dist-electron/`, production npm dependencies, wallpapers, icons, and a desktop entry; it does not invoke electron-builder. The release workflow later opens a PR to update the Nix package version and npm dependency hash after stable releases.
Copy file name to clipboardExpand all lines: technical-documentation/engineering/ci-workflows.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,7 @@ flowchart TD
21
21
ReleaseBuild["build.yml<br/>v* tag or dispatch"] --> Win[Windows NSIS]
22
22
ReleaseBuild --> Store[Windows AppX]
23
23
ReleaseBuild --> Mac["macOS arm64 and x64 DMGs"]
24
-
ReleaseBuild --> Linux["AppImage, deb, pacman"]
24
+
ReleaseBuild --> Linux["AppImage, deb, pacman, rpm"]
25
25
Win --> Publish[GitHub release]
26
26
Mac --> Publish
27
27
Linux --> Publish
@@ -101,7 +101,7 @@ A `v*` tag or manual dispatch starts platform builds. Dispatch accepts `arch` (`
101
101
-`build-windows` runs `npm run build:win` and uploads `openscreen-windows` for 30 days.
102
102
-`build-windows-store` runs `npm run build:win:store` and uploads `openscreen-windows-store` for 30 days.
103
103
-`build-macos` is an `arm64`/`x64` matrix. It builds Vite/Electron and native helpers, packages and optionally signs the app, creates DMGs, notarizes every signed build including pre-releases, and uploads one artifact per architecture for 30 days.
104
-
-`build-linux` produces AppImage, deb, and pacman files and uploads `openscreen-linux` for 30 days. No zsync: that is electron-updater's delta format, this repo ships no updater, and app-builder-lib 26.x embeds a block map in the AppImage instead.
104
+
-`build-linux` produces AppImage, deb, pacman, and rpm files and uploads `openscreen-linux` for 30 days. It asserts one artifact per format before uploading, because `if-no-files-found: error` evaluates the union of the upload globs and so cannot catch a single format that stopped being produced. No zsync: that is electron-updater's delta format, this repo ships no updater, and app-builder-lib 26.x embeds a block map in the AppImage instead.
105
105
-`publish-release` waits for Windows NSIS, macOS, and Linux jobs; the Store job is not a dependency. It checks the tag against `package.json`, downloads the NSIS/macOS/Linux artifacts, and creates or updates a GitHub release with `OPENSCREEN_RELEASE_TOKEN`.
106
106
107
107
The build comments and package behavior refer to the local Whisper architecture documented in [transcription and captions](../architecture/transcription-and-captions.md). The STT model downloads to user data at runtime and is not a release-build asset.
Copy file name to clipboardExpand all lines: website/docs/installation.md
+8-2Lines changed: 8 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,13 +2,14 @@
2
2
id: installation
3
3
title: Installation
4
4
sidebar_position: 2
5
-
description: "Install OpenScreen on macOS, Windows, or Linux — .dmg, .exe, .deb, .pacman, AppImage, and a Nix flake, including the macOS Gatekeeper step."
5
+
description: "Install OpenScreen on macOS, Windows, or Linux — .dmg, .exe, .deb, .rpm, .pacman, AppImage, and a Nix flake, including the macOS Gatekeeper step."
6
6
keywords:
7
7
- install screen recorder
8
8
- download OpenScreen
9
9
- macOS dmg
10
10
- Windows installer
11
11
- Linux deb
12
+
- Fedora rpm
12
13
- AppImage
13
14
- Nix flake
14
15
---
@@ -41,13 +42,18 @@ Download and run the `.exe` installer from [Releases](https://github.com/getopen
41
42
42
43
## Linux
43
44
44
-
Three packages are published per release — pick the one matching your distro.
45
+
Four packages are published per release — pick the one matching your distro.
// structured-data description that contradicts the meta one is worse than none.
26
26
constPAGE_TITLE="Download for Windows, macOS & Linux";
27
27
constPAGE_DESCRIPTION=
28
-
"Download OpenScreen free for Windows, macOS, and Linux — .dmg, .exe, .deb, .pacman, AppImage, and a Nix flake. Open source, no account, no watermark.";
28
+
"Download OpenScreen free for Windows, macOS, and Linux — .dmg, .exe, .deb, .rpm, .pacman, AppImage, and a Nix flake. Open source, no account, no watermark.";
0 commit comments