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..3150f3479982 --- /dev/null +++ b/pkgs/by-name/xp/xpra-html5/package.nix @@ -0,0 +1,45 @@ +{ + 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 = '' + runHook preInstall + python $src/setup.py install $out /share/xpra/www /share/xpra/www + runHook postInstall + ''; + + 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 + ]; + }; +}) diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix index 43801251492e..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, @@ -46,6 +46,8 @@ xorgserver, xxHash, clang, + withHtml ? true, + xpra-html5, }@args: let @@ -94,7 +96,7 @@ buildPythonApplication rec { src = fetchFromGitHub { owner = "Xpra-org"; repo = "xpra"; - rev = "v${version}"; + tag = "v${version}"; hash = "sha256-XY8NZhWCRLjpgq0dOClzftvMR7g/X64b+OYyjOGC/lM="; }; @@ -245,7 +247,7 @@ buildPythonApplication rec { xauth which util-linux - pulseaudio + pulseaudioFull ] } '' @@ -256,16 +258,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; @@ -276,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 ]; }; }