From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 0DA111FF18C for ; Mon, 24 Mar 2025 16:04:21 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 830C11F0DC; Mon, 24 Mar 2025 16:04:17 +0100 (CET) From: Dominik Csapak To: pve-devel@lists.proxmox.com Date: Mon, 24 Mar 2025 16:03:36 +0100 Message-Id: <20250324150337.3221726-2-d.csapak@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250324150337.3221726-1-d.csapak@proxmox.com> References: <20250324150337.3221726-1-d.csapak@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.578 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible spam tricks KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes PROLO_LEO3 0.1 Meta Catches all Leo drug variations so far SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH novnc 1/2] upgrade noVNC and patches to 1.6.0 X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" since we cannot use the bundler to bundle to commonjs/iife anymore (see https://github.com/novnc/noVNC/issues/1943) we now bundle it into an es module and load that in a top level script tag as a module. also removes the rounded corners on panels, and removes a superfluous
in the settings list. Signed-off-by: Dominik Csapak --- .../0001-add-PVE-specific-JS-code.patch | 101 ++++++++-------- ...002-add-custom-fbresize-event-on-rfb.patch | 13 +- ...nge-scaling-when-toggling-fullscreen.patch | 9 +- debian/patches/0004-add-pve-style.patch | 31 ++--- debian/patches/0005-remove-vnc-logos.patch | 17 +-- ...rectory-for-fetching-images-js-files.patch | 113 +++++++++++------- .../patches/0007-add-pve-vnc-commands.patch | 9 +- ...add-replaceable-snippets-in-vnc.html.patch | 15 ++- .../0009-decrease-animation-time.patch | 98 ++++++++------- debian/patches/0010-use-only-app.js.patch | 71 +++++++++-- .../0011-add-localCursor-setting-to-rfb.patch | 45 ++++--- .../0012-pass-custom-command-to-vnc.patch | 3 + ...ove-the-default-value-of-wsProtocols.patch | 8 +- ...passing-deprecated-upgrade-parameter.patch | 4 + ...-create-own-class-for-hidden-buttons.patch | 11 +- ...-button-on-isFullscreen-get-variable.patch | 3 + debian/patches/0017-make-error-hideable.patch | 5 +- ...ow-start-button-on-not-running-vm-ct.patch | 13 +- .../patches/0019-show-clipboard-button.patch | 3 + debian/rules | 2 +- novnc | 2 +- 21 files changed, 362 insertions(+), 214 deletions(-) diff --git a/debian/patches/0001-add-PVE-specific-JS-code.patch b/debian/patches/0001-add-PVE-specific-JS-code.patch index 655a2cd..926f0c0 100644 --- a/debian/patches/0001-add-PVE-specific-JS-code.patch +++ b/debian/patches/0001-add-PVE-specific-JS-code.patch @@ -13,9 +13,9 @@ Signed-off-by: Dominik Csapak Signed-off-by: Thomas Lamprecht --- app/pve.js | 428 +++++++++++++++++++++++++++++++++++++++++++++++++++++ - app/ui.js | 62 ++++++-- - vnc.html | 10 +- - 3 files changed, 485 insertions(+), 15 deletions(-) + app/ui.js | 60 +++++++- + vnc.html | 12 +- + 3 files changed, 491 insertions(+), 9 deletions(-) create mode 100644 app/pve.js diff --git a/app/pve.js b/app/pve.js @@ -453,7 +453,7 @@ index 0000000..1a062ad + }, +}; diff --git a/app/ui.js b/app/ui.js -index f27dfe2..f2f194c 100644 +index 51e57bd..bd1561c 100644 --- a/app/ui.js +++ b/app/ui.js @@ -17,6 +17,7 @@ import keysyms from "../core/input/keysymdef.js"; @@ -464,16 +464,16 @@ index f27dfe2..f2f194c 100644 const PAGE_TITLE = "noVNC"; -@@ -57,6 +58,8 @@ const UI = { - // Render default UI and initialize settings menu - start() { +@@ -72,6 +73,8 @@ const UI = { + }); + } + UI.PVE = new PVEUI(UI); + UI.initSettings(); // Translate the DOM -@@ -108,6 +111,9 @@ const UI = { +@@ -121,6 +124,9 @@ const UI = { UI.addConnectionControlHandlers(); UI.addClipboardHandlers(); UI.addSettingsHandlers(); @@ -483,7 +483,7 @@ index f27dfe2..f2f194c 100644 document.getElementById("noVNC_status") .addEventListener('click', UI.hideStatus); -@@ -116,19 +122,15 @@ const UI = { +@@ -129,6 +135,8 @@ const UI = { UI.openControlbar(); @@ -492,37 +492,39 @@ index f27dfe2..f2f194c 100644 UI.updateVisualState('init'); document.documentElement.classList.remove("noVNC_loading"); - -- let autoconnect = WebUtil.getConfigVar('autoconnect', false); -- if (autoconnect === 'true' || autoconnect == '1') { -- autoconnect = true; +@@ -136,7 +144,9 @@ const UI = { + let autoconnect = UI.getSetting('autoconnect'); + if (autoconnect === 'true' || autoconnect == '1') { + autoconnect = true; - UI.connect(); -- } else { -- autoconnect = false; -- // Show the connect panel on first load unless autoconnecting -- UI.openConnectPanel(); -- } -+ UI.PVE.pveStart(function(password) { -+ UI.connect(undefined, password); -+ }); ++ UI.PVE.pveStart(function(password) { ++ UI.connect(undefined, password); ++ }); + } else { + autoconnect = false; + // Show the connect panel on first load unless autoconnecting +@@ -172,15 +182,16 @@ const UI = { + UI.setupSettingLabels(); - return Promise.resolve(UI.rfb); - }, -@@ -172,11 +174,12 @@ const UI = { /* Populate the controls if defaults are provided in the URL */ - UI.initSetting('host', window.location.hostname); - UI.initSetting('port', port); +- UI.initSetting('host', ''); +- UI.initSetting('port', 0); - UI.initSetting('encrypt', (window.location.protocol === "https:")); ++ UI.initSetting('host', window.location.hostname); ++ UI.initSetting('port', window.location.port); + UI.initSetting('encrypt', true); + UI.initSetting('password'); +- UI.initSetting('autoconnect', false); ++ UI.initSetting('autoconnect', true); UI.initSetting('view_clip', false); UI.initSetting('resize', 'off'); UI.initSetting('quality', 6); UI.initSetting('compression', 2); + UI.initSetting('autoresize', true); UI.initSetting('shared', true); + UI.initSetting('bell', 'on'); UI.initSetting('view_only', false); - UI.initSetting('show_dot', false); -@@ -357,6 +360,7 @@ const UI = { +@@ -360,6 +371,7 @@ const UI = { UI.addSettingChangeHandler('resize'); UI.addSettingChangeHandler('resize', UI.applyResizeMode); UI.addSettingChangeHandler('resize', UI.updateViewClip); @@ -530,7 +532,7 @@ index f27dfe2..f2f194c 100644 UI.addSettingChangeHandler('quality'); UI.addSettingChangeHandler('quality', UI.updateQuality); UI.addSettingChangeHandler('compression'); -@@ -411,6 +415,9 @@ const UI = { +@@ -414,6 +426,9 @@ const UI = { document.documentElement.classList.add("noVNC_connecting"); break; case 'connected': @@ -540,7 +542,7 @@ index f27dfe2..f2f194c 100644 document.documentElement.classList.add("noVNC_connected"); break; case 'disconnecting': -@@ -418,6 +425,11 @@ const UI = { +@@ -421,6 +436,11 @@ const UI = { document.documentElement.classList.add("noVNC_disconnecting"); break; case 'disconnected': @@ -552,7 +554,7 @@ index f27dfe2..f2f194c 100644 break; case 'reconnecting': transitionElem.textContent = _("Reconnecting..."); -@@ -843,6 +855,7 @@ const UI = { +@@ -867,6 +887,7 @@ const UI = { UI.closePowerPanel(); UI.closeClipboardPanel(); UI.closeExtraKeys(); @@ -560,7 +562,7 @@ index f27dfe2..f2f194c 100644 }, /* ------^------- -@@ -1697,9 +1710,36 @@ const UI = { +@@ -1729,9 +1750,36 @@ const UI = { /* ------^------- * /EXTRA KEYS * ============== @@ -599,37 +601,42 @@ index f27dfe2..f2f194c 100644 if (!UI.rfb) return; UI.rfb.viewOnly = UI.getSetting('view_only'); diff --git a/vnc.html b/vnc.html -index 24a118d..e8a982f 100644 +index 82cacd5..458f4d0 100644 --- a/vnc.html +++ b/vnc.html -@@ -154,7 +154,7 @@ +@@ -205,7 +205,7 @@ Settings
    -
  • +
  • - -
  • -
  • -@@ -164,16 +164,18 @@ -
  • - +
  • +
  • -+ ++ +
  • - +
  • -

  • +-

  • -
  • +
  • Advanced
    • +-- +2.39.5 + diff --git a/debian/patches/0002-add-custom-fbresize-event-on-rfb.patch b/debian/patches/0002-add-custom-fbresize-event-on-rfb.patch index 286d665..2fd12b0 100644 --- a/debian/patches/0002-add-custom-fbresize-event-on-rfb.patch +++ b/debian/patches/0002-add-custom-fbresize-event-on-rfb.patch @@ -13,10 +13,10 @@ Signed-off-by: Dominik Csapak 2 files changed, 21 insertions(+) diff --git a/app/ui.js b/app/ui.js -index f2f194c..f32b67c 100644 +index bd1561c..3726c8c 100644 --- a/app/ui.js +++ b/app/ui.js -@@ -1076,6 +1076,7 @@ const UI = { +@@ -1116,6 +1116,7 @@ const UI = { UI.rfb.addEventListener("clipboard", UI.clipboardReceive); UI.rfb.addEventListener("bell", UI.bell); UI.rfb.addEventListener("desktopname", UI.updateDesktopName); @@ -24,7 +24,7 @@ index f2f194c..f32b67c 100644 UI.rfb.clipViewport = UI.getSetting('view_clip'); UI.rfb.scaleViewport = UI.getSetting('resize') === 'scale'; UI.rfb.resizeSession = UI.getSetting('resize') === 'remote'; -@@ -1735,6 +1736,16 @@ const UI = { +@@ -1775,6 +1776,16 @@ const UI = { document.getElementById('pve_commands_button').classList.remove("noVNC_selected"); }, @@ -42,10 +42,10 @@ index f2f194c..f32b67c 100644 * /PVE * ============== diff --git a/core/rfb.js b/core/rfb.js -index f2deb0e..37ba099 100644 +index e3266cc..23b436c 100644 --- a/core/rfb.js +++ b/core/rfb.js -@@ -2873,6 +2873,16 @@ export default class RFB extends EventTargetMixin { +@@ -3014,6 +3014,16 @@ export default class RFB extends EventTargetMixin { this._updateClip(); this._updateScale(); @@ -62,3 +62,6 @@ index f2deb0e..37ba099 100644 this._updateContinuousUpdates(); // Keep this size until browser client size changes +-- +2.39.5 + diff --git a/debian/patches/0003-change-scaling-when-toggling-fullscreen.patch b/debian/patches/0003-change-scaling-when-toggling-fullscreen.patch index 5cf14e5..b51cddc 100644 --- a/debian/patches/0003-change-scaling-when-toggling-fullscreen.patch +++ b/debian/patches/0003-change-scaling-when-toggling-fullscreen.patch @@ -12,10 +12,10 @@ Signed-off-by: Dominik Csapak 1 file changed, 11 insertions(+) diff --git a/app/ui.js b/app/ui.js -index f32b67c..04a5a2a 100644 +index 3726c8c..5773ddf 100644 --- a/app/ui.js +++ b/app/ui.js -@@ -1294,6 +1294,13 @@ const UI = { +@@ -1334,6 +1334,13 @@ const UI = { } else if (document.msExitFullscreen) { document.msExitFullscreen(); } @@ -29,7 +29,7 @@ index f32b67c..04a5a2a 100644 } else { if (document.documentElement.requestFullscreen) { document.documentElement.requestFullscreen(); -@@ -1304,7 +1311,11 @@ const UI = { +@@ -1344,7 +1351,11 @@ const UI = { } else if (document.body.msRequestFullscreen) { document.body.msRequestFullscreen(); } @@ -41,3 +41,6 @@ index f32b67c..04a5a2a 100644 UI.updateFullscreenButton(); }, +-- +2.39.5 + diff --git a/debian/patches/0004-add-pve-style.patch b/debian/patches/0004-add-pve-style.patch index acdfab9..6aeeac1 100644 --- a/debian/patches/0004-add-pve-style.patch +++ b/debian/patches/0004-add-pve-style.patch @@ -10,17 +10,17 @@ and fix the z-index of the connect overlay Signed-off-by: Dominik Csapak --- - app/styles/pve.css | 42 ++++++++++++++++++++++++++++++++++++++++++ - vnc.html | 5 +++-- - 2 files changed, 45 insertions(+), 2 deletions(-) + app/styles/pve.css | 46 ++++++++++++++++++++++++++++++++++++++++++++++ + vnc.html | 1 + + 2 files changed, 47 insertions(+) create mode 100644 app/styles/pve.css diff --git a/app/styles/pve.css b/app/styles/pve.css new file mode 100644 -index 0000000..eaeb5cb +index 0000000..a312a95 --- /dev/null +++ b/app/styles/pve.css -@@ -0,0 +1,42 @@ +@@ -0,0 +1,46 @@ +/* + * noVNC black CSS + * Copyright (C) 2012 Joel Martin @@ -63,19 +63,22 @@ index 0000000..eaeb5cb + border-color: rgba(0, 0, 0, 0.4); + background: #5BA8DF; +} ++ ++input:not(.toggle), button, div:not(#noVNC_container) { ++ border-radius: unset !important; ++} diff --git a/vnc.html b/vnc.html -index e8a982f..b54fe41 100644 +index 458f4d0..2a50991 100644 --- a/vnc.html +++ b/vnc.html -@@ -36,8 +36,9 @@ - - - -- -- -+ -+ +@@ -40,6 +40,7 @@ + + + + +-- +2.39.5 + diff --git a/debian/patches/0005-remove-vnc-logos.patch b/debian/patches/0005-remove-vnc-logos.patch index 9395183..98a4878 100644 --- a/debian/patches/0005-remove-vnc-logos.patch +++ b/debian/patches/0005-remove-vnc-logos.patch @@ -7,19 +7,19 @@ to show the pve icon instead Signed-off-by: Dominik Csapak --- - vnc.html | 22 ++++------------------ - 1 file changed, 4 insertions(+), 18 deletions(-) + vnc.html | 21 +++------------------ + 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/vnc.html b/vnc.html -index b54fe41..5c5549d 100644 +index 2a50991..f5e4a81 100644 --- a/vnc.html +++ b/vnc.html -@@ -15,26 +15,12 @@ +@@ -15,27 +15,12 @@ --> noVNC - -+ + - @@ -43,5 +43,8 @@ index b54fe41..5c5549d 100644 + + - - + + +-- +2.39.5 + diff --git a/debian/patches/0006-change-source-directory-for-fetching-images-js-files.patch b/debian/patches/0006-change-source-directory-for-fetching-images-js-files.patch index 17586d7..680f6ea 100644 --- a/debian/patches/0006-change-source-directory-for-fetching-images-js-files.patch +++ b/debian/patches/0006-change-source-directory-for-fetching-images-js-files.patch @@ -9,81 +9,105 @@ also change the directory in the build script Signed-off-by: Dominik Csapak --- app/ui.js | 4 ++-- - vnc.html | 54 +++++++++++++++++++++++++++--------------------------- - 2 files changed, 29 insertions(+), 29 deletions(-) + vnc.html | 63 +++++++++++++++++++++++++++---------------------------- + 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/app/ui.js b/app/ui.js -index 04a5a2a..18bac4b 100644 +index 5773ddf..01c7c77 100644 --- a/app/ui.js +++ b/app/ui.js -@@ -73,7 +73,7 @@ const UI = { +@@ -58,7 +58,7 @@ const UI = { + + // Set up translations + try { +- await l10n.setup(LINGUAS, "app/locale/"); ++ await l10n.setup(LINGUAS, "/novnc/app/locale/"); + } catch (err) { + Log.Error("Failed to load translations: " + err); } +@@ -89,7 +89,7 @@ const UI = { // Try to fetch version number -- fetch('./package.json') -+ fetch('/novnc/package.json') - .then((response) => { - if (!response.ok) { - throw Error("" + response.status + " " + response.statusText); -@@ -1833,7 +1833,7 @@ const UI = { - - // Set up translations - const LINGUAS = ["cs", "de", "el", "es", "fr", "it", "ja", "ko", "nl", "pl", "pt_BR", "ru", "sv", "tr", "zh_CN", "zh_TW"]; --l10n.setup(LINGUAS, "app/locale/") -+l10n.setup(LINGUAS, "/novnc/app/locale/") - .catch(err => Log.Error("Failed to load translations: " + err)) - .then(UI.prime); - + try { +- let response = await fetch('./package.json'); ++ let response = await fetch('/novnc/package.json'); + if (!response.ok) { + throw Error("" + response.status + " " + response.statusText); + } diff --git a/vnc.html b/vnc.html -index 5c5549d..f081aee 100644 +index f5e4a81..9f4fac0 100644 --- a/vnc.html +++ b/vnc.html -@@ -22,17 +22,17 @@ +@@ -22,21 +22,20 @@ -- -- -+ -+ +- +- +- ++ ++ ++ - - - +- +- + + + -- -- + -+ - + @@ -33,6 +33,9 @@ index 9281009..4ce107a 100644 + PVE.CSRFPreventionToken = '[% token %]'; + INCLUDE_URI='/novnc/include'; + - - - + -- -+ + - +-- +2.39.5 + diff --git a/debian/patches/0011-add-localCursor-setting-to-rfb.patch b/debian/patches/0011-add-localCursor-setting-to-rfb.patch index c090169..62068c6 100644 --- a/debian/patches/0011-add-localCursor-setting-to-rfb.patch +++ b/debian/patches/0011-add-localCursor-setting-to-rfb.patch @@ -11,22 +11,22 @@ Signed-off-by: Thomas Lamprecht app/ui.js | 10 ++++++++++ core/rfb.js | 10 ++++++++++ core/util/cursor.js | 15 ++++++++++++++- - vnc.html | 3 +++ - 4 files changed, 37 insertions(+), 1 deletion(-) + vnc.html | 7 +++++++ + 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/app/ui.js b/app/ui.js -index 18bac4b..e70e922 100644 +index 01c7c77..0434fbc 100644 --- a/app/ui.js +++ b/app/ui.js -@@ -180,6 +180,7 @@ const UI = { +@@ -192,6 +192,7 @@ const UI = { UI.initSetting('quality', 6); UI.initSetting('compression', 2); UI.initSetting('autoresize', true); + UI.initSetting('local_cursor', true); UI.initSetting('shared', true); + UI.initSetting('bell', 'on'); UI.initSetting('view_only', false); - UI.initSetting('show_dot', false); -@@ -372,6 +373,8 @@ const UI = { +@@ -383,6 +384,8 @@ const UI = { UI.addSettingChangeHandler('view_only', UI.updateViewOnly); UI.addSettingChangeHandler('show_dot'); UI.addSettingChangeHandler('show_dot', UI.updateShowDotCursor); @@ -35,7 +35,7 @@ index 18bac4b..e70e922 100644 UI.addSettingChangeHandler('host'); UI.addSettingChangeHandler('port'); UI.addSettingChangeHandler('path'); -@@ -1078,6 +1081,7 @@ const UI = { +@@ -1118,6 +1121,7 @@ const UI = { UI.rfb.addEventListener("desktopname", UI.updateDesktopName); UI.rfb.addEventListener("fbresize", UI.updateSessionSize); UI.rfb.clipViewport = UI.getSetting('view_clip'); @@ -43,7 +43,7 @@ index 18bac4b..e70e922 100644 UI.rfb.scaleViewport = UI.getSetting('resize') === 'scale'; UI.rfb.resizeSession = UI.getSetting('resize') === 'remote'; UI.rfb.qualityLevel = parseInt(UI.getSetting('quality')); -@@ -1762,6 +1766,12 @@ const UI = { +@@ -1802,6 +1806,12 @@ const UI = { * ============== * MISC * ------v------*/ @@ -57,10 +57,10 @@ index 18bac4b..e70e922 100644 if (!UI.rfb) return; UI.rfb.viewOnly = UI.getSetting('view_only'); diff --git a/core/rfb.js b/core/rfb.js -index 37ba099..0f31079 100644 +index 23b436c..8260929 100644 --- a/core/rfb.js +++ b/core/rfb.js -@@ -290,6 +290,7 @@ export default class RFB extends EventTargetMixin { +@@ -298,6 +298,7 @@ export default class RFB extends EventTargetMixin { this._clippingViewport = false; this._scaleViewport = false; this._resizeSession = false; @@ -68,7 +68,7 @@ index 37ba099..0f31079 100644 this._showDotCursor = false; if (options.showDotCursor !== undefined) { -@@ -360,6 +361,15 @@ export default class RFB extends EventTargetMixin { +@@ -368,6 +369,15 @@ export default class RFB extends EventTargetMixin { } } @@ -85,7 +85,7 @@ index 37ba099..0f31079 100644 set showDotCursor(show) { this._showDotCursor = show; diff --git a/core/util/cursor.js b/core/util/cursor.js -index 20e75f1..91763a5 100644 +index 6d689e7..4bb5547 100644 --- a/core/util/cursor.js +++ b/core/util/cursor.js @@ -12,6 +12,8 @@ export default class Cursor { @@ -137,16 +137,23 @@ index 20e75f1..91763a5 100644 + } diff --git a/vnc.html b/vnc.html -index eed474f..b80f3c5 100644 +index 8ff6739..f2c29af 100644 --- a/vnc.html +++ b/vnc.html -@@ -157,6 +157,9 @@ -
    • - +@@ -173,6 +173,13 @@ + Clip to window +
    • +
    • -+ ++ +
    • - -
    • +
    @@ -192,6 +192,9 @@ index b80f3c5..ca69f03 100644 + + + - +
    +-- +2.39.5 + diff --git a/debian/patches/0019-show-clipboard-button.patch b/debian/patches/0019-show-clipboard-button.patch index f7db533..3a746b1 100644 --- a/debian/patches/0019-show-clipboard-button.patch +++ b/debian/patches/0019-show-clipboard-button.patch @@ -26,3 +26,6 @@ index d7fbdd3..6e69fb6 100644 }, failure: function(msg, code) { if (code === 403) { +-- +2.39.5 + diff --git a/debian/rules b/debian/rules index 486a68e..14a4795 100755 --- a/debian/rules +++ b/debian/rules @@ -11,7 +11,7 @@ export DEB_BUILD_HARDENING=1 dh ${@} override_dh_auto_build: - esbuild --bundle app/ui.js > app.js + esbuild --bundle --format=esm app/ui.js > app.js dh_auto_build override_dh_install: diff --git a/novnc b/novnc index 7fcf9dc..a8dfd6a 160000 --- a/novnc +++ b/novnc @@ -1 +1 @@ -Subproject commit 7fcf9dcfe0cc5b14e3841a4429dc091a6ffca861 +Subproject commit a8dfd6a3ea3c74244f5ebdaa5a7f1023007a7820 -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel