Xpra: Ticket #1838: completely skip server base classes

Similar to #1836 but for mixins (#1778 / #1761), we should be able to completely skip some of the server base classes. ie:

etc

This would reduce the memory footprint, and increase the security (decreasing the attack surface): it is impossible to attack code which isn't there.

Could be done for the server by using a dynamic type for "server base" (see example patch). The client is not modular enough to support this sort of refactoring. (see #1796 for authentication handlers)



Fri, 11 May 2018 07:53:01 GMT - Antoine Martin: attachment set

dynamic list of base classes


Fri, 11 May 2018 15:36:56 GMT - Antoine Martin: status, description changed

Huge commits making things modular in r19283 + r19282.

This may help with #1123, we just need a new "upgrade" argument for the cleanup method.


Fri, 11 May 2018 17:11:00 GMT - Antoine Martin:

As of r19284, the server can completely skip a number of modules:

xpra start --notifications=no --webcam=no --speaker=no --microphone=no \
    --file-transfer=no --printing=no --dbus-proxy=no \
    --remote-logging=no --mmap=no --clipboard=no --av-sync=no

(this will disable most of the optional mixins, both in the server base class and in the "client connection" instance)

Still TODO:


Sun, 13 May 2018 15:14:11 GMT - Antoine Martin:

Regression: #1841, fixup: r19363


Tue, 22 May 2018 16:35:13 GMT - Antoine Martin:

Automated test script added in r19371, with some bug fixes included.

This script exposes lots of ugly dependency issues. (in particular with read-only mode, keyboard, etc) So many more bugs are left to fix..


Wed, 23 May 2018 10:28:52 GMT - Antoine Martin:

Updates:

Still TODO:


Tue, 29 May 2018 15:38:24 GMT - Antoine Martin: summary changed

For the client, see #1861


Tue, 12 Jun 2018 13:18:51 GMT - Antoine Martin:

Ugly dependency utility cursor functions added: ticket:1658#comment:8.


Tue, 26 Jun 2018 09:54:31 GMT - Antoine Martin:

This is true for the following xpra submodules: notifications, keyboard, clipboard, sound and dbus. The server runs but prints a warning if the settings or command line try to enable functionality that is not available, ie:

Warning: missing notifications module

Mon, 09 Jul 2018 14:50:12 GMT - Antoine Martin: owner, status changed

@maxmylyn: FYI, feel free to close. (see comment:8)

Will follow up in #1913 (high memory usage).


Mon, 09 Jul 2018 16:26:13 GMT - J. Max Mena: status changed; resolution set

Noted and closed.


Mon, 03 Sep 2018 07:28:49 GMT - Antoine Martin:

r20282 does the same for RFB in shadow and desktop servers.


Mon, 03 Sep 2018 13:14:37 GMT - Norman Rasmussen:

Would you backport a fix to the v2.3.x branch (and maybe others?) to include calls to IdleMixin and ClipboardConnection in ClientConnection.get_info? I noticed that the data is missing :-(


Mon, 03 Sep 2018 13:14:46 GMT - Norman Rasmussen: cc set


Mon, 03 Sep 2018 14:27:44 GMT - Antoine Martin:

Would you backport a fix to the v2.3.x branch (and maybe others?) to include calls to IdleMixin and ClipboardConnection in ClientConnection.get_info? I noticed that the data is missing :-(

Done in r20284. @norman: does that work for you?


Sat, 29 Jun 2019 15:29:20 GMT - Antoine Martin:

See also #2344 and #2351


Sat, 23 Jan 2021 05:35:07 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1838