Skip to content
Snippets Groups Projects
Commit ba5f332f authored by Jens Henrik Göbbert's avatar Jens Henrik Göbbert
Browse files

fix XDG-stuff, make xpra respect config-files, enable encryption

parent 6dea28a1
Branches
Tags
No related merge requests found
...@@ -91,10 +91,14 @@ exts_list = [ ...@@ -91,10 +91,14 @@ exts_list = [
('xpra', '4.3.2', dict(list(local_common_opts.items()) + [ ('xpra', '4.3.2', dict(list(local_common_opts.items()) + [
('source_urls', ['https://github.com/Xpra-org/%(name)s/archive/']), ('source_urls', ['https://github.com/Xpra-org/%(name)s/archive/']),
('source_tmpl', 'v%(version)s.tar.gz'), ('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-add-XPRA_SYSCONF_DIR.patch',
]),
('checksums', [ ('checksums', [
('sha256', '1e548b8d20c243fba40692abb0aa2759e3bd3f2d3b6b51a160f82746cdf1d782'), ('sha256', '1e548b8d20c243fba40692abb0aa2759e3bd3f2d3b6b51a160f82746cdf1d782'),
('sha256', '83053938421de4dfd4ff8cd5430414180e9f33d5c59b4f1c1428095db6b1fa71'), ('sha256', '83053938421de4dfd4ff8cd5430414180e9f33d5c59b4f1c1428095db6b1fa71'),
('sha256', 'cdef1de0b941b25cfdfdac11f36b6548febcbd76116761a05f3db3839c33d059'),
]), ]),
('use_pip', False), ('use_pip', False),
('buildopts', '--without-strict --with-nvenc --with-nvjpeg --with-Xdummy'), ('buildopts', '--without-strict --with-nvenc --with-nvjpeg --with-Xdummy'),
...@@ -103,7 +107,11 @@ exts_list = [ ...@@ -103,7 +107,11 @@ exts_list = [
('xpra-html5', '4.5.2', dict(list(local_common_opts.items()) + [ ('xpra-html5', '4.5.2', dict(list(local_common_opts.items()) + [
('source_urls', ['https://github.com/Xpra-org/%(name)s/archive/']), ('source_urls', ['https://github.com/Xpra-org/%(name)s/archive/']),
('source_tmpl', 'v%(version)s.tar.gz'), ('source_tmpl', 'v%(version)s.tar.gz'),
('checksums', [('sha256', '7f4ccea864fdfb8d6c71a77100fcb2ad07af0773eaafc528ec19ff8187d9bfdb')]), ('patches', ['xprahtml-4.5.2-encryptionfix.patch']),
('checksums', [
('sha256', '7f4ccea864fdfb8d6c71a77100fcb2ad07af0773eaafc528ec19ff8187d9bfdb'),
('sha256', '252ce94ac3079c0d4db7a10862fe690ef0dd46ccdf36780bc917b5ff49205eb0'),
]),
('use_pip', False), ('use_pip', False),
('skipsteps', ['configure', 'build', 'install']), # install in postinstallcmds ('skipsteps', ['configure', 'build', 'install']), # install in postinstallcmds
('modulename', 'xpra'), ('modulename', 'xpra'),
...@@ -117,6 +125,12 @@ postinstallcmds = [ ...@@ -117,6 +125,12 @@ postinstallcmds = [
'./setup.py install %(installdir)s/share/xpra/www && ' './setup.py install %(installdir)s/share/xpra/www && '
'popd' '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 # make Xpra randomly choose a GPU for acceleration if present
'mv %(installdir)s/bin/xpra %(installdir)s/bin/xpra.orig', 'mv %(installdir)s/bin/xpra %(installdir)s/bin/xpra.orig',
'head -1 %(installdir)s/bin/xpra.orig > %(installdir)s/bin/xpra', 'head -1 %(installdir)s/bin/xpra.orig > %(installdir)s/bin/xpra',
...@@ -141,6 +155,9 @@ postinstallcmds = [ ...@@ -141,6 +155,9 @@ postinstallcmds = [
'chmod +x %(installdir)s/bin/xpra', 'chmod +x %(installdir)s/bin/xpra',
] ]
modextravars = {
'XPRA_SYSCONF_DIR' : '%(installdir)s/etc/xpra',
}
modextrapaths = { modextrapaths = {
'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'], 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'],
} }
......
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 -Naur xpra.orig/xpra/platform/xposix/paths.py xpra/xpra/platform/xposix/paths.py
--- a/xpra.orig/xpra/platform/xposix/paths.py 2022-03-30 23:59:37.275482000 +0200
+++ a/xpra/xpra/platform/xposix/paths.py 2022-03-31 00:00:57.851713000 +0200
@@ -80,7 +80,10 @@
def do_get_system_conf_dirs():
- dirs = ["/etc/xpra", "/usr/local/etc/xpra"]
+ if os.environ.get("XPRA_SYSCONF_DIR") is not None:
+ dirs = [os.environ.get("XPRA_SYSCONF_DIR")]
+ else:
+ dirs = ["/etc/xpra", "/usr/local/etc/xpra"]
for d in os.environ.get("XDG_CONFIG_DIRS", "/etc/xdg").split(":"):
dirs.append(os.path.join(d, "xpra"))
#hope the prefix is something like "/usr/local" or "$HOME/.local":
--- 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,14 @@
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);
+ }
+ console.warn("key_salt=", key_salt);
+ console.log("key_salt=", key_salt.constructor);
+ console.log("key_salt=", typeof key_salt);
+ console.log("from packet encoder", this.packet_encoder);
const iterations = caps["cipher.key_stretch_iterations"];
if (iterations<0) {
throw "invalid number of iterations: "+iterations;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment