novnc: correctly install and point to websockify

`utils/novnc_proxy` tries to download and run the `websockify` package
in the directory where the script is located, which doesn't work because
the nix store is read-only. This patches the script to point to
nix-installed `websockify`.
This commit is contained in:
David Warde-Farley 2022-08-30 02:38:37 +01:00
parent 671fabc93b
commit 13cc17cc53
2 changed files with 20 additions and 2 deletions

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub }:
{ lib, python3, stdenv, substituteAll, fetchFromGitHub }:
stdenv.mkDerivation rec {
pname = "novnc";
@ -11,7 +11,12 @@ stdenv.mkDerivation rec {
sha256 = "sha256-Z+bks7kcwj+Z3uf/t0u25DnGOM60QhSH6uuoIi59jqU=";
};
patches = [ ./fix-paths.patch ];
patches = with python3.pkgs; [
(substituteAll {
src = ./websockify.patch;
inherit websockify;
})
] ++ [ ./fix-paths.patch ];
postPatch = ''
substituteAllInPlace utils/novnc_proxy

View file

@ -0,0 +1,13 @@
diff --git a/utils/novnc_proxy b/utils/novnc_proxy
index 0365c1e..7eba2db 100755
--- a/utils/novnc_proxy
+++ b/utils/novnc_proxy
@@ -167,7 +167,7 @@ if [[ -d ${HERE}/websockify ]]; then
echo "Using local websockify at $WEBSOCKIFY"
else
- WEBSOCKIFY_FROMSYSTEM=$(which websockify 2>/dev/null)
+ WEBSOCKIFY_FROMSYSTEM="@websockify@/bin/websockify"
WEBSOCKIFY_FROMSNAP=${HERE}/../usr/bin/python2-websockify
[ -f $WEBSOCKIFY_FROMSYSTEM ] && WEBSOCKIFY=$WEBSOCKIFY_FROMSYSTEM
[ -f $WEBSOCKIFY_FROMSNAP ] && WEBSOCKIFY=$WEBSOCKIFY_FROMSNAP