From b69468b35b3a38a1812538491f360226198b3feb Mon Sep 17 00:00:00 2001 From: lucasew Date: Sun, 23 Mar 2025 23:33:57 -0300 Subject: [PATCH 1/6] xpra-html5: init at 17 Signed-off-by: lucasew --- pkgs/by-name/xp/xpra-html5/package.nix | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 pkgs/by-name/xp/xpra-html5/package.nix diff --git a/pkgs/by-name/xp/xpra-html5/package.nix b/pkgs/by-name/xp/xpra-html5/package.nix new file mode 100644 index 000000000000..d15c14e745eb --- /dev/null +++ b/pkgs/by-name/xp/xpra-html5/package.nix @@ -0,0 +1,41 @@ +{ + lib, + fetchFromGitHub, + stdenvNoCC, + python3, + uglify-js, + gitUpdater, +}: +stdenvNoCC.mkDerivation (finalAttrs: { + name = "xpra-html5"; + version = "17"; + + src = fetchFromGitHub { + owner = "Xpra-org"; + repo = "xpra-html5"; + tag = "v${finalAttrs.version}"; + hash = "sha256-SwP7NazsiUyDD4LUziCwN0X9GTQVq0lYM2jXqNaXLEA="; + }; + + buildInputs = [ + python3 + uglify-js + ]; + + installPhase = "python $src/setup.py install $out /share/xpra/www /share/xpra/www"; + + passthru.updateScript = gitUpdater { rev-prefix = "v"; }; + + meta = { + homepage = "https://xpra.org/"; + downloadPage = "https://xpra.org/src/"; + description = "HTML5 client for Xpra"; + changelog = "https://github.com/Xpra-org/xpra-html5/releases/tag/v${finalAttrs.version}"; + platforms = lib.platforms.linux; + license = lib.licenses.mpl20; + maintainers = with lib.maintainers; [ + catern + lucasew + ]; + }; +}) From d22160d343f4dd83b3a24b3fa8b9931a695c6f76 Mon Sep 17 00:00:00 2001 From: lucasew Date: Sun, 23 Mar 2025 23:34:39 -0300 Subject: [PATCH 2/6] xpra: opt-in for the html5 interface Signed-off-by: lucasew --- pkgs/tools/X11/xpra/default.nix | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix index fc0c33deaa32..733d342bd0fb 100644 --- a/pkgs/tools/X11/xpra/default.nix +++ b/pkgs/tools/X11/xpra/default.nix @@ -45,6 +45,8 @@ xorgserver, xxHash, clang, + withHtml ? true, + xpra-html5, }@args: let @@ -254,16 +256,20 @@ buildPythonApplication rec { ) ''; - postInstall = '' - # append module paths to xorg.conf - cat ${xorgModulePaths} >> $out/etc/xpra/xorg.conf - cat ${xorgModulePaths} >> $out/etc/xpra/xorg-uinput.conf + postInstall = + '' + # append module paths to xorg.conf + cat ${xorgModulePaths} >> $out/etc/xpra/xorg.conf + cat ${xorgModulePaths} >> $out/etc/xpra/xorg-uinput.conf - # make application icon visible to desktop environemnts - icon_dir="$out/share/icons/hicolor/64x64/apps" - mkdir -p "$icon_dir" - ln -sr "$out/share/icons/xpra.png" "$icon_dir" - ''; + # make application icon visible to desktop environemnts + icon_dir="$out/share/icons/hicolor/64x64/apps" + mkdir -p "$icon_dir" + ln -sr "$out/share/icons/xpra.png" "$icon_dir" + '' + + lib.optionalString withHtml '' + ln -s ${xpra-html5}/share/xpra/www $out/share/xpra/www; + ''; doCheck = false; From 4c429296c30cd3bf97a41a58a00dfebb2b2ee168 Mon Sep 17 00:00:00 2001 From: lucasew Date: Sun, 23 Mar 2025 23:35:23 -0300 Subject: [PATCH 3/6] xpra: systemd support Signed-off-by: lucasew --- pkgs/tools/X11/xpra/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix index 733d342bd0fb..54dcbb717f9e 100644 --- a/pkgs/tools/X11/xpra/default.nix +++ b/pkgs/tools/X11/xpra/default.nix @@ -22,6 +22,7 @@ librsvg, libvpx, libwebp, + systemd, lz4, nv-codec-headers-10, nvidia_x11 ? null, @@ -167,6 +168,7 @@ buildPythonApplication rec { openh264 libyuv xxHash + systemd ] ++ lib.optional withNvenc [ nvencHeaders From 68b223584c82bce24a635cc71c445c1739f8aa68 Mon Sep 17 00:00:00 2001 From: lucasew Date: Sun, 23 Mar 2025 23:37:22 -0300 Subject: [PATCH 4/6] xpra: minor tweaks, add me as maintainer Signed-off-by: lucasew --- pkgs/tools/X11/xpra/default.nix | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix index 54dcbb717f9e..4cd97ddae6c4 100644 --- a/pkgs/tools/X11/xpra/default.nix +++ b/pkgs/tools/X11/xpra/default.nix @@ -96,7 +96,7 @@ buildPythonApplication rec { src = fetchFromGitHub { owner = "Xpra-org"; repo = "xpra"; - rev = "v${version}"; + tag = "v${version}"; hash = "sha256-XY8NZhWCRLjpgq0dOClzftvMR7g/X64b+OYyjOGC/lM="; }; @@ -282,17 +282,18 @@ buildPythonApplication rec { updateScript = ./update.sh; }; - meta = with lib; { + meta = { homepage = "https://xpra.org/"; downloadPage = "https://xpra.org/src/"; description = "Persistent remote applications for X"; changelog = "https://github.com/Xpra-org/xpra/releases/tag/v${version}"; - platforms = platforms.linux; - license = licenses.gpl2Only; - maintainers = with maintainers; [ + platforms = lib.platforms.linux; + license = lib.licenses.gpl2Only; + maintainers = with lib.maintainers; [ offline numinit mvnetbiz + lucasew ]; }; } From 6cac98e3d37a7f8a75869e7a7d87ff8702ac437d Mon Sep 17 00:00:00 2001 From: lucasew Date: Mon, 24 Mar 2025 11:29:25 -0300 Subject: [PATCH 5/6] xpra: use pulseaudioFull because of a missing pulseaudio plugin Signed-off-by: lucasew --- pkgs/tools/X11/xpra/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix index 4cd97ddae6c4..3f2ab18d5fc4 100644 --- a/pkgs/tools/X11/xpra/default.nix +++ b/pkgs/tools/X11/xpra/default.nix @@ -29,7 +29,7 @@ pam, pandoc, pango, - pulseaudio, + pulseaudioFull, python3, stdenv, util-linux, @@ -247,7 +247,7 @@ buildPythonApplication rec { xauth which util-linux - pulseaudio + pulseaudioFull ] } '' From 2c7ec001e760fe9c6bd64b3b282e5351e4163594 Mon Sep 17 00:00:00 2001 From: lucasew Date: Tue, 25 Mar 2025 14:41:28 -0300 Subject: [PATCH 6/6] xpra-html5: hooks in installPhase Signed-off-by: lucasew --- pkgs/by-name/xp/xpra-html5/package.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/xp/xpra-html5/package.nix b/pkgs/by-name/xp/xpra-html5/package.nix index d15c14e745eb..3150f3479982 100644 --- a/pkgs/by-name/xp/xpra-html5/package.nix +++ b/pkgs/by-name/xp/xpra-html5/package.nix @@ -22,7 +22,11 @@ stdenvNoCC.mkDerivation (finalAttrs: { uglify-js ]; - installPhase = "python $src/setup.py install $out /share/xpra/www /share/xpra/www"; + installPhase = '' + runHook preInstall + python $src/setup.py install $out /share/xpra/www /share/xpra/www + runHook postInstall + ''; passthru.updateScript = gitUpdater { rev-prefix = "v"; };