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 codecs into a separate package #3651

Closed
totaam opened this issue Oct 14, 2022 · 6 comments
Closed

split codecs into a separate package #3651

totaam opened this issue Oct 14, 2022 · 6 comments
Labels
enhancement New feature or request linux packaging

Comments

@totaam
Copy link
Collaborator

totaam commented Oct 14, 2022

When using xpra locally on the same (virtual) host using mmap or vsock, none of the codecs should be used and they end up consuming memory, disk space and sometimes causing bugs too (ie WSL2 #3649).
Somewhat related to #3592

@totaam
Copy link
Collaborator Author

totaam commented Oct 14, 2022

Already done: See also #2344

  • make python3-pillow sort of optional: 268b700 - c0f8346 - f5426a0, still used in some places, but it should now be possible to run the client and server without having it installed: da8b805, 48e4dd2, 03c4059. Avoid scary warnings: ca5b4d8
  • re-arrange codecs module layout: fa3e6ed
  • split into xpra-codecs package: fd34298* move nvidia bits together: 0f55524 and into a separate RPM package: b2cbd4c

@totaam
Copy link
Collaborator Author

totaam commented Oct 15, 2022

Here is the new list of RPM names generated (excluding debuginfo and debugsource packages):

xpra-5.0-10.fc36.x86_64.rpm
xpra-audio-5.0-10.fc36.x86_64.rpm
xpra-client-5.0-10.fc36.x86_64.rpm
xpra-codecs-5.0-10.fc36.x86_64.rpm
xpra-codecs-nvidia-5.0-10.fc36.x86_64.rpm
xpra-common-5.0-10.fc36.x86_64.rpm
xpra-server-5.0-10.fc36.x86_64.rpm

And for DEBs:

xpra_5.0-1_amd64.deb
xpra-audio_5.0-1_amd64.deb
xpra-codecs_5.0-1_amd64.deb
xpra-codecs-nvidia_5.0-1_amd64.deb

@totaam totaam closed this as completed Oct 15, 2022
totaam added a commit that referenced this issue Oct 18, 2022
because the libraries have weird names in Debian land, even if the development header packages do not.
Also document the dependencies better, move some authentication libraries to 'Suggests' instead of 'Recommends',
the sub-packages can depend on the main one rather than depending on a 'python3' package,
remove all cuda bits from the main package
totaam added a commit that referenced this issue Oct 20, 2022
it is needed for interacting with a server
@totaam
Copy link
Collaborator Author

totaam commented Oct 31, 2022

One downside of this change is that following the Debian build instructions at https://github.com/Xpra-org/xpra/blob/master/docs/Build/Debian.md now fails unless you have cuda installed whereas this used to produce a build without the codecs.
No easy way around this AFAIK.

See also Xpra-org/repo-build-scripts#7

@iDmple
Copy link
Contributor

iDmple commented Dec 8, 2022

One downside of this change is that following the Debian build instructions at https://github.com/Xpra-org/xpra/blob/master/docs/Build/Debian.md now fails unless you have cuda installed whereas this used to produce a build without the codecs. No easy way around this AFAIK.

After some investigation, the only problem is this line, because without what's needed for CUDA, this file is missing:

If it's commented out, the build is a success.

Would it be possible to have an empty file always there for if CUDA isn't installed?

totaam added a commit that referenced this issue Dec 9, 2022
@totaam
Copy link
Collaborator Author

totaam commented Dec 9, 2022

Would it be possible to have an empty file always there for if CUDA isn't installed?

That's what we used to do and I didn't like it because there was no way of knowing when the build failed to actually produce nvidia codecs without looking inside the package file, or relying on the file size somehow.
But I guess we don't have any other choice on Debian so I have reverted it.

totaam added a commit that referenced this issue Dec 20, 2022
* most codecs will import code from xpra-common, so make it required
* both client and server work best with codecs installed, so make it recommended
@totaam
Copy link
Collaborator Author

totaam commented Mar 18, 2023

We now have a xpra-codecs-extras for the ffmpeg codecs, and the client has been split into xpra-client and xpra-client-gtk3: #3797

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request linux packaging
Projects
None yet
Development

No branches or pull requests

2 participants