diff --git a/Golden_Repo/x/xpra/xpra-4.3.2-GCCcore-11.2.0.eb b/Golden_Repo/x/xpra/xpra-4.3.2-GCCcore-11.2.0.eb index 4b23cb1efd72b4b5ce70ecdddee64cc30618630f..0cf74cbfd0963da9018069ce60ceea41fc4c5c40 100644 --- a/Golden_Repo/x/xpra/xpra-4.3.2-GCCcore-11.2.0.eb +++ b/Golden_Repo/x/xpra/xpra-4.3.2-GCCcore-11.2.0.eb @@ -91,10 +91,14 @@ exts_list = [ ('xpra', '4.3.2', dict(list(local_common_opts.items()) + [ ('source_urls', ['https://github.com/Xpra-org/%(name)s/archive/']), ('source_tmpl', 'v%(version)s.tar.gz'), - ('patches', ['xpra-4.0.4-use_Xorg_on_PATH_first.patch']), + ('patches', [ + 'xpra-4.0.4-use_Xorg_on_PATH_first.patch', + 'xpra-iconsearch-XDG_DATA_DIRS.patch', + ]), ('checksums', [ ('sha256', '1e548b8d20c243fba40692abb0aa2759e3bd3f2d3b6b51a160f82746cdf1d782'), ('sha256', '83053938421de4dfd4ff8cd5430414180e9f33d5c59b4f1c1428095db6b1fa71'), + ('sha256', '7bb677302308dacdc55f9a862b6eee43f0a8d2b4524a8dec6d80bcdf3982d6af'), ]), ('use_pip', False), ('buildopts', '--without-strict --with-nvenc --with-nvjpeg --with-Xdummy'), @@ -103,7 +107,11 @@ exts_list = [ ('xpra-html5', '4.5.2', dict(list(local_common_opts.items()) + [ ('source_urls', ['https://github.com/Xpra-org/%(name)s/archive/']), ('source_tmpl', 'v%(version)s.tar.gz'), - ('checksums', [('sha256', '7f4ccea864fdfb8d6c71a77100fcb2ad07af0773eaafc528ec19ff8187d9bfdb')]), + ('patches', ['xprahtml-4.5.2-encryptionfix.patch']), + ('checksums', [ + ('sha256', '7f4ccea864fdfb8d6c71a77100fcb2ad07af0773eaafc528ec19ff8187d9bfdb'), + ('sha256', 'be0b430f7e6970eb35912c5c2cc7fb9f2073f94485c12776d06752cf8c0f6023'), + ]), ('use_pip', False), ('skipsteps', ['configure', 'build', 'install']), # install in postinstallcmds ('modulename', 'xpra'), @@ -117,6 +125,13 @@ postinstallcmds = [ './setup.py install %(installdir)s/share/xpra/www && ' 'popd' ), + # set specific configurations + ( + # server config + 'touch %(installdir)s/etc/xpra/server.env && ' + "sed -i 's!^source =.*!source = %(installdir)s/etc/xpra/server.env!' " + " %(installdir)s/etc/xpra/conf.d/60_server.conf" + ), # make Xpra randomly choose a GPU for acceleration if present 'mv %(installdir)s/bin/xpra %(installdir)s/bin/xpra.orig', 'head -1 %(installdir)s/bin/xpra.orig > %(installdir)s/bin/xpra', @@ -141,6 +156,9 @@ postinstallcmds = [ 'chmod +x %(installdir)s/bin/xpra', ] +modextravars = { + 'XPRA_SYSTEM_CONF_DIRS': '%(installdir)s/etc/xpra', +} modextrapaths = { 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'], } diff --git a/Golden_Repo/x/xpra/xpra-iconsearch-XDG_DATA_DIRS.patch b/Golden_Repo/x/xpra/xpra-iconsearch-XDG_DATA_DIRS.patch new file mode 100644 index 0000000000000000000000000000000000000000..f5afb0bbd1c9d32b75e92354286d7a87dd04343d --- /dev/null +++ b/Golden_Repo/x/xpra/xpra-iconsearch-XDG_DATA_DIRS.patch @@ -0,0 +1,23 @@ +diff -Naur xpra.orig/xpra/platform/xposix/menu_helper.py xpra/xpra/platform/xposix/menu_helper.py +--- a/xpra.orig/xpra/platform/xposix/menu_helper.py 2022-03-30 23:59:37.274275428 +0200 ++++ a/xpra/xpra/platform/xposix/menu_helper.py 2022-03-31 00:06:49.279245408 +0200 +@@ -177,8 +177,9 @@ + def find_pixmap_icon(*names): + if not LOAD_FROM_PIXMAPS: + return None ++ pixmaps_dirs = [d + '/icons' for d in os.environ.get("XDG_DATA_DIRS").split(":")] + pixmaps_dir = "%s/share/pixmaps" % sys.prefix +- pixmaps_dirs = (pixmaps_dir, os.path.join(pixmaps_dir, "comps")) ++ pixmaps_dirs += (pixmaps_dir, os.path.join(pixmaps_dir, "comps")) + for d in pixmaps_dirs: + if not os.path.exists(d) or not os.path.isdir(d): + return None +@@ -411,6 +412,8 @@ + from xdg.Menu import MenuEntry + entries = {} + for d in LOAD_APPLICATIONS: ++ if not os.path.exists(d): ++ continue + for f in os.listdir(d): + if not f.endswith(".desktop"): + continue diff --git a/Golden_Repo/x/xpra/xprahtml-4.5.2-encryptionfix.patch b/Golden_Repo/x/xpra/xprahtml-4.5.2-encryptionfix.patch new file mode 100644 index 0000000000000000000000000000000000000000..40ec1ed1dad2ef5d34d422336ff42e888fce423b --- /dev/null +++ b/Golden_Repo/x/xpra/xprahtml-4.5.2-encryptionfix.patch @@ -0,0 +1,13 @@ +--- a/html5/js/Protocol.js.orig 2022-03-28 12:59:40.198667996 +0200 ++++ b/html5/js/Protocol.js 2022-03-28 13:02:38.099943598 +0200 +@@ -631,6 +631,10 @@ + throw "unsupported encryption specified: '"+cipher+"'"; + } + const key_salt = caps["cipher.key_salt"]; ++ let key_salt = caps["cipher.key_salt"]; ++ if (typeof key_salt !== 'string') { ++ key_salt = String.fromCharCode.apply(null, key_salt); ++ } + const iterations = caps["cipher.key_stretch_iterations"]; + if (iterations<0) { + throw "invalid number of iterations: "+iterations;