# Packaging

Starting with version 6, xpra packages make extensive use of sub-packages. This allows users to install only the components they need, drastically reducing the number of packages installed, saving disk-space and reducing the attack surface. It also allows multiple versions of xpra to be installed in parallel on the same system, as long as each one uses a different python interpreter.

For example:

- Wayland clients no longer need to install the `xpra-x11` component
- `xpra-client` (default `python3.12` interpreter) and `python3.10-xpra-client` can coexist on Fedora
- installations that do not use network connections can omit all `xpra-codecs*` packages
- pure server installations no longer need to install the `xpra-client-gtk3` package and its dependencies

Assuming that the https://xpra.org/ repositories are installed correctly, installing `xpra` using your package manager should install the client and server components as well as most picture codecs and audio support. For slimmer installations, you may also want to use `apt`'s `--no-install-recommends` or `dnf`'s `--setopt=install_weak_deps=False` and select individual xpra sub-packages:

| Package | Details | |------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `xpra-filesystem` | this package contains configuration files and is independent of the python version
See multiple python targets (version 6 onwards) | | `xpra-common` | this package is required by all the other sub-packages | | `xpra-client` | console clients: `xpra stop`, `xpra info`, etc | | `xpra-client-gtk3` | the main client GUI for connecting to sessions: `xpra attach`, `xpra launcher`, etc | | `xpra-server` | for starting sessions locally: `xpra seamless`, `xpra desktop`, `xpra shadow`, etc | | `xpra-server-wayland` | experimental Wayland seamless server: `xpra seamless --backend=wayland` | | `xpra-x11` | required for all X11 server session types (ie: `xpra seamless` and `xpra desktop`) and for X11 clients | | `xpra-audio` | audio forwarding support for both client and server | | `xpra-codecs` | core picture compression codecs | | `xpra-codecs-extras` | more video compression codecs with heavier footprint and / or licensing requirements | | `xpra-codecs-amd` | extra proprietary AMD codecs: `amf` encoder | | `xpra-codecs-nvidia` | extra proprietary NVidia codecs: `nvenc`, `nvjpeg`, `nvdec`, `nvfbc`, etc |

Here is a visual representation of the dependencies between the sub-packages:

Please avoid broken downstream distribution packages.