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
1 change: 1 addition & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,7 @@ jobs:
release/**/*.zsync
release/**/*.deb
release/**/*.pacman
release/**/*.rpm
if-no-files-found: error
retention-days: 30

Expand Down
20 changes: 19 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,18 @@ Download the `.exe` installer directly from the [Releases page](https://github.c

### Linux

Three packages are published to the [Releases page](https://github.com/EtienneLescot/openscreen/releases) for each version. Pick the one that matches your distro:
Packages are published to the [Releases page](https://github.com/EtienneLescot/openscreen/releases) for each version. Pick the one that matches your distro:

**Debian / Ubuntu / Pop!_OS (`.deb`)**
```bash
sudo apt install ./Openscreen-Linux-latest.deb
```

**Fedora / RHEL / CentOS (`.rpm`)**
```bash
sudo dnf install ./Openscreen-Linux-latest.rpm
```
Comment on lines 88 to +96

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Use the versioned release filenames.

Electron Builder produces Openscreen-Linux-${version}.${ext}, not Openscreen-Linux-latest.*. These commands will fail after downloading the published assets.

Proposed fix
- sudo apt install ./Openscreen-Linux-latest.deb
+ sudo apt install ./Openscreen-Linux-*.deb

- sudo dnf install ./Openscreen-Linux-latest.rpm
+ sudo dnf install ./Openscreen-Linux-*.rpm
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
**Debian / Ubuntu / Pop!_OS (`.deb`)**
```bash
sudo apt install ./Openscreen-Linux-latest.deb
```
**Fedora / RHEL / CentOS (`.rpm`)**
```bash
sudo dnf install ./Openscreen-Linux-latest.rpm
```
**Debian / Ubuntu / Pop!_OS (`.deb`)**
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 88 - 96, Update the Debian/Ubuntu/Pop!_OS and
Fedora/RHEL/CentOS installation commands in the README to use the versioned
Electron Builder filenames, replacing the `latest` placeholder with the actual
release version while preserving the existing package extensions and install
commands.


**Arch / Manjaro (`.pacman`)**
```bash
sudo pacman -U Openscreen-Linux-latest.pacman
Expand All @@ -101,6 +106,19 @@ chmod +x Openscreen-Linux-*.AppImage
./Openscreen-Linux-*.AppImage
```

**Building from Source (Local Compilation)**
If you want to build and install the application locally on Fedora/RPM systems:
```bash
# Clone the repository and install dependencies
npm install

# Compile and package only the RPM target
npm run build:rpm

# Install the generated RPM locally
sudo dnf install ./release/1.6.0/Openscreen-Linux-*.rpm
```
Comment on lines +118 to +120

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Hardcoded release version in build output paths.

Both the documentation and the Flatpak manifest hardcode the 1.6.0 version in paths referencing the release/ directory. When the application version is updated, the Flatpak build will fail and the documented installation commands will become stale. Ensure you use a wildcard directory match.

  • README.md#L124-L126: replace sudo dnf install ./release/1.6.0/Openscreen-Linux-*.rpm with sudo dnf install ./release/*/Openscreen-Linux-*.rpm.
  • flatpak/com.etiennelescot.openscreen.yml#L40-L41: replace cp -r release/1.6.0/linux-unpacked/* /app/ with cp -r release/*/linux-unpacked/* /app/.
📍 Affects 2 files
  • README.md#L124-L126 (this comment)
  • flatpak/com.etiennelescot.openscreen.yml#L40-L41
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 124 - 126, The release output paths are hardcoded to
version 1.6.0. Update README.md lines 124-126 to use a wildcard release
directory in the RPM installation command, and update
flatpak/com.etiennelescot.openscreen.yml lines 40-41 to use a wildcard release
directory in the linux-unpacked copy command.


**NixOS / Nix (flake)**

Try without installing:
Expand Down
3 changes: 2 additions & 1 deletion electron-builder.json5
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@
"target": [
"AppImage",
"deb",
"pacman"
"pacman",
"rpm"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Build will produce .rpm, but CI doesn't ship it. The target list now includes rpm at line 82, but .github/workflows/build.yml line 264-269 only uploads AppImage / zsync / deb / pacman. The new RPM will be silently dropped. Add release/**/*.rpm to the upload glob (and the publish-release job will auto-include it via find artifacts … | sort).

Or, if you want to keep this PR focused on Flatpak-only, drop the rpm entry from target and file a follow-up.

],
"icon": "icons/icons/png",
"artifactName": "${productName}-Linux-${version}.${ext}",
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@
"build:mac": "npm run build:native:mac && tsc && vite build && electron-builder --mac",
"build:native:win": "node scripts/build-windows-wgc-helper.mjs",
"build:win": "npm run build:native:win && tsc && vite build && electron-builder --win --config.npmRebuild=false",
"build:linux": "tsc && vite build && electron-builder --linux AppImage deb pacman --config.npmRebuild=false",
"build:linux": "tsc && vite build && electron-builder --linux AppImage deb pacman rpm --config.npmRebuild=false",
"build:rpm": "tsc && vite build && electron-builder --linux rpm --config.npmRebuild=false",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

build:rpm script. Adds a script that runs electron-builder --linux rpm. Combined with the electron-builder.json5:82 target, this generates the RPM on demand. Make sure the publish-release workflow (or a follow-up) actually uploads it — see electron-builder.json5:82 comment.

"test": "vitest --run",
"test:watch": "vitest",
"test:cursor-native:win": "node scripts/test-windows-native-cursor.mjs",
Expand Down
Loading