Similar to #1836 but for mixins (#1778 / #1761), we should be able to completely skip some of the server base classes. ie:
LoggingServer
MMAP_Server
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)
dynamic list of base classes
Huge commits making things modular in r19283 + r19282.
This may help with #1123, we just need a new "upgrade" argument for the cleanup method.
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:
2**10=1024
!) to check for invalid attribute dependencies
Regression: #1841, fixup: r19363
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..
Updates:
--windows=no
)
Still TODO:
send_cursor
might belong in the display rather than windows mixin?
keys_pressed
should be moved to the keyboard config: r19466
For the client, see #1861
Ugly dependency utility cursor functions added: ticket:1658#comment:8.
--without-dbus
- new switches added in r19725) or by nuking them afterwards (ie: rm -fr /usr/lib64/python2.7/site-packages/xpra/keyboard/
).
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
@maxmylyn: FYI, feel free to close. (see comment:8)
Will follow up in #1913 (high memory usage).
Noted and closed.
r20282 does the same for RFB in shadow and desktop servers.
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 :-(
Would you backport a fix to the v2.3.x branch (and maybe others?) to include calls to
IdleMixin
andClipboardConnection
inClientConnection.get_info
? I noticed that the data is missing :-(
Done in r20284. @norman: does that work for you?
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1838