Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

split client and server builds #1253

Closed
totaam opened this issue Jul 12, 2016 · 18 comments
Closed

split client and server builds #1253

totaam opened this issue Jul 12, 2016 · 18 comments

Comments

@totaam
Copy link
Collaborator

totaam commented Jul 12, 2016

Issue migrated from trac ticket # 1253

component: packaging | priority: major | resolution: fixed

2016-07-12 17:26:12: antoine created the issue


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.

@totaam
Copy link
Collaborator Author

totaam commented Jul 12, 2016

2016-07-12 17:51:51: antoine commented


Milestone renamed

@totaam
Copy link
Collaborator Author

totaam commented Jul 17, 2016

2016-07-17 16:56:37: antoine changed status from new to assigned

@totaam
Copy link
Collaborator Author

totaam commented Jul 17, 2016

2016-07-17 16:56:37: antoine edited the issue description

@totaam
Copy link
Collaborator Author

totaam commented Aug 21, 2016

2016-08-21 10:55:50: antoine commented


Milestone renamed

@totaam
Copy link
Collaborator Author

totaam commented Dec 16, 2016

2016-12-16 19:11:11: antoine commented


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

@totaam
Copy link
Collaborator Author

totaam commented Feb 15, 2017

2017-02-15 09:46:38: antoine commented


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

@totaam
Copy link
Collaborator Author

totaam commented Feb 17, 2017

2017-02-17 06:24:12: antoine commented


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.

@totaam
Copy link
Collaborator Author

totaam commented Mar 19, 2017

2017-03-19 12:30:43: antoine commented


  • 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

@totaam
Copy link
Collaborator Author

totaam commented Mar 20, 2017

2017-03-20 13:36:13: antoine commented


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

@totaam
Copy link
Collaborator Author

totaam commented Mar 22, 2017

2017-03-22 07:22:39: antoine changed status from assigned to new

@totaam
Copy link
Collaborator Author

totaam commented Mar 22, 2017

2017-03-22 07:22:39: antoine changed owner from antoine to smo

@totaam
Copy link
Collaborator Author

totaam commented Mar 22, 2017

2017-03-22 07:22:39: antoine commented


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)

@totaam
Copy link
Collaborator Author

totaam commented Apr 19, 2017

2017-04-19 14:07:42: antoine commented


FYI: r15672 also introduces weak dependencies, available since Fedora 21 - sadly not available in centos7. (was only added in RPM 4.12)

@totaam
Copy link
Collaborator Author

totaam commented Apr 20, 2017

2017-04-20 16:29:27: antoine commented


r15684 restores the ability to take screenshots in client-only builds - but maybe this should still be optional?

@totaam
Copy link
Collaborator Author

totaam commented Jul 20, 2017

2017-07-20 08:14:24: antoine changed status from new to closed

@totaam
Copy link
Collaborator Author

totaam commented Jul 20, 2017

2017-07-20 08:14:24: antoine set resolution to fixed

@totaam
Copy link
Collaborator Author

totaam commented Jul 20, 2017

2017-07-20 08:14:24: antoine commented


crickets - works for me

@totaam totaam closed this as completed Jul 20, 2017
@totaam
Copy link
Collaborator Author

totaam commented Nov 12, 2017

2017-11-12 14:14:49: antoine commented


Audio issue with centos7 packaging: #1683

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant