docs: add upstream tracking comments to plasma-bigscreen files
All checks were successful
CI / check (pull_request) Successful in 2m28s
CI / build-and-cache (pull_request) Has been skipped

Flag the custom derivation and workarounds as temporary with TODO
markers and links to the relevant nixpkgs issue/PR. Makes it clear
what to remove once plasma-bigscreen lands in nixpkgs.
This commit is contained in:
2026-03-07 10:45:33 -08:00
parent bf63c8dff3
commit 91cc6cbed8
2 changed files with 17 additions and 10 deletions

View File

@@ -5,7 +5,8 @@ with lib;
let let
cfg = config.roles.plasma-bigscreen; cfg = config.roles.plasma-bigscreen;
# Plasma Bigscreen package — not yet in nixpkgs, built from upstream master # Plasma Bigscreen package — not yet in nixpkgs, built from upstream master.
# TODO: Replace with pkgs.kdePackages.plasma-bigscreen once available.
plasma-bigscreen = pkgs.kdePackages.callPackage ./package.nix {}; plasma-bigscreen = pkgs.kdePackages.callPackage ./package.nix {};
jellyfinMediaPlayerPkg = jellyfinMediaPlayerPkg =

View File

@@ -1,8 +1,12 @@
# Plasma Bigscreen — TV interface for Plasma 6 # Plasma Bigscreen — TV interface for Plasma 6
# Not yet released or packaged in nixpkgs; built from upstream master. # Not yet released or packaged in nixpkgs; built from upstream master.
#
# TODO: Remove this file once plasma-bigscreen lands in nixpkgs.
# Tracking issue: https://github.com/NixOS/nixpkgs/issues/428077
# Draft nixpkgs PR: https://github.com/NixOS/nixpkgs/pull/428353
# When available, switch to pkgs.kdePackages.plasma-bigscreen.
#
# Upstream: https://invent.kde.org/plasma/plasma-bigscreen # Upstream: https://invent.kde.org/plasma/plasma-bigscreen
# Tracking: https://github.com/NixOS/nixpkgs/issues/428077
# Based on: https://github.com/NixOS/nixpkgs/pull/428353
{ {
mkKdeDerivation, mkKdeDerivation,
lib, lib,
@@ -30,7 +34,7 @@
libkscreen, libkscreen,
kdeconnect-kde, kdeconnect-kde,
# Qt 6 # Qt 6
qtdeclarative, qtdeclarative, # needed for Qt6::QmlPrivate — see QCoro workaround in postPatch
qtmultimedia, qtmultimedia,
qtwebengine, qtwebengine,
# Other # Other
@@ -50,7 +54,6 @@ mkKdeDerivation {
owner = "plasma"; owner = "plasma";
repo = "plasma-bigscreen"; repo = "plasma-bigscreen";
rev = "bd143fea7e386bac1652b8150a3ed3d5ef7cf93c"; rev = "bd143fea7e386bac1652b8150a3ed3d5ef7cf93c";
# Build will fail with hash mismatch — copy the correct hash from the error
hash = "sha256-y439IX7e0+XqxqFj/4+P5le0hA7DiwA+smDsD0UH/fI="; hash = "sha256-y439IX7e0+XqxqFj/4+P5le0hA7DiwA+smDsD0UH/fI=";
}; };
@@ -80,7 +83,7 @@ mkKdeDerivation {
milou milou
libkscreen libkscreen
kdeconnect-kde kdeconnect-kde
# Qt # Qt — qtdeclarative is needed for Qt6::QmlPrivate (see postPatch)
qtdeclarative qtdeclarative
qtmultimedia qtmultimedia
qtwebengine qtwebengine
@@ -96,13 +99,16 @@ mkKdeDerivation {
substituteInPlace bin/plasma-bigscreen-wayland.in \ substituteInPlace bin/plasma-bigscreen-wayland.in \
--replace @KDE_INSTALL_FULL_LIBEXECDIR@ "${plasma-workspace}/libexec" --replace @KDE_INSTALL_FULL_LIBEXECDIR@ "${plasma-workspace}/libexec"
# Plasma version numbers must match; we're building an unreleased package # WORKAROUND: Plasma version numbers must match; we're building an
# against a stable Plasma release. # unreleased package against a stable Plasma release. Remove once
# bigscreen is part of the Plasma release cycle.
substituteInPlace CMakeLists.txt \ substituteInPlace CMakeLists.txt \
--replace-fail 'set(PROJECT_VERSION "6.5.80")' 'set(PROJECT_VERSION "${plasma-workspace.version}")' --replace-fail 'set(PROJECT_VERSION "6.5.80")' 'set(PROJECT_VERSION "${plasma-workspace.version}")'
# QCoro6Qml links against Qt6::QmlPrivate but doesn't import it. # WORKAROUND: QCoro6Qml's cmake config links against Qt6::QmlPrivate but
# Add find_package for Qt6QmlPrivate before QCoro is loaded. # doesn't call find_package to import the target. This is arguably a QCoro
# packaging bug in nixpkgs (it should propagate qtdeclarative). Remove
# once QCoro or the nixpkgs plasma-bigscreen package is fixed upstream.
substituteInPlace CMakeLists.txt \ substituteInPlace CMakeLists.txt \
--replace-fail 'find_package(QCoro6' 'find_package(Qt6 ''${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS QmlPrivate) --replace-fail 'find_package(QCoro6' 'find_package(Qt6 ''${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS QmlPrivate)
find_package(QCoro6' find_package(QCoro6'