xpra icon
Bug tracker and wiki

Opened 9 months ago

Last modified 3 days ago

#1253 new task

split client and server builds

Reported by: Antoine Martin Owned by: Smo
Priority: major Milestone: 2.1
Component: packaging Version: trunk
Keywords: Cc:

Description (last modified by Antoine Martin)

Make it possible to install just the client or just the server.
For rpm packaging, this probably means having:

  • xpra: meta package
  • xpra-common: unchanged, common bits
  • python2-xpra-common: the python2 code used by both client and server
  • python2-xpra-server: the python2 server code
  • python2-xpra-gtk-client: the current pygtk client

Not shown here: python3

For win32 and OSX, this means having 3 different types of builds:

  • full - same as today
  • client only
  • server only

See also #1258.

Change History (9)

comment:1 Changed 9 months ago by Antoine Martin

Milestone: 1.01.1

Milestone renamed

comment:2 Changed 8 months ago by Antoine Martin

Description: modified (diff)
Status: newassigned

comment:3 Changed 7 months ago by Antoine Martin

Milestone: 1.12.0

Milestone renamed

comment:4 Changed 3 months ago by Antoine Martin

r14547 moves the html5 client to its own package so we can update it separately: xpra-html5.

comment:5 Changed 5 weeks ago by Antoine Martin

Milestone: 2.02.1

Too late for this sort of structural change, re-scheduling.

comment:6 Changed 5 weeks ago by Antoine Martin

As per xpra - ImportError: No module named client.gtk2.client, people will get confused if they install a "server-only" build or package and find that they cannot run "xpra info" or "xpra stop".

So maybe we will need an "python2-xpra-client-cli" package? (and rename "python2-xpra-client-gtk2"). We should be able to use the "python3" version of the package for those, in our endless efforts to move away from python2.

comment:7 Changed 6 days ago by Antoine Martin

  • r15333 improves the error message when trying to run the client or server and its python components are not installed
  • r15334 splits the RPM into multiple packages

New sub packages:

  • "xpra" meta package that installs everything (so upgrades will continue to work)
  • "xpra-common": man page, base config files, icon, etc
  • "xpra-common-client": client config files, .desktop files, mime entry
  • "xpra-common-server": server config files, systemd unit file, tmpfiles.d, cups backend, xorg config, cuda+nvenc configs, .. triggers SSL key generation on install, firewall rules
  • "python2-xpra-common": common python2 modules
  • "python2-xpra-client": python2 xpra client
  • "python2-xpra-server": python2 xpra X11 server
  • "python3-xpra-common": common python3 modules
  • "python3-xpra-client": python3 xpra client (limited)
  • "python3-xpra-server": python3 xpra X11 server (limited)

Remaining issues:

  • shadow server complains that "no system tray implementation available" if the client package is not installed - this needs to be moved to "common"
  • websockify is not available with python3 (only in Fedora rawhide)
  • Debian packaging? (meh)
  • win32 and osx

comment:8 Changed 5 days ago by Antoine Martin

r15341 renames "python2-xpra-common" to just "python2-xpra" to resolve conflicts when upgrading on centos7

comment:9 Changed 3 days ago by Antoine Martin

Owner: changed from Antoine Martin to Smo
Status: assignednew

MS Windows

r15342 + r15343 add the ability to build "client only" win32 builds using:

sh win32/PY27_MINGW_BUILD.sh CLIENT /silent

Beta builds uploaded: http://xpra.org/beta/windows/


Mac OSX

mostly done in r15344 using:

CLIENT_ONLY=1 DO_TESTS=0 ./make-all.sh

Both the client builds and the regular full builds should be parallel installable, though there may be some conflicts:

  • both apps will claim the mimetype
  • both apps contain an Xpra_NoDock.app sub app with the same app id

Beta builds uploaded: http://xpra.org/beta/osx/


RPM

r15346:

  • splits printing dependencies between client and server packages
  • adds "python[23]-xpra-audio" packages so we can install the gstreamer sink + source without the client or server, or install the client or server without audio forwarding
  • makes the html5 package optional: you can install a server without it

PS: upgrades from previous 2.1 snapshots may or may not work (the "python[23]-xpra-common" is no more and may conflict)


I think this will do for this release.
@smo: not sure you care - feel free to just close, but the ability to install a more minimal python3 build for sound forwarding is nice (we could take this further and split "bus", "codecs", etc... probably not worth the pain)

Note: See TracTickets for help on using tickets.