Skip to content

Commit

Permalink
#3797 split debian packaging
Browse files Browse the repository at this point in the history
  • Loading branch information
totaam committed Mar 21, 2023
1 parent 9d161b4 commit fc24011
Show file tree
Hide file tree
Showing 13 changed files with 227 additions and 139 deletions.
217 changes: 123 additions & 94 deletions packaging/debian/xpra/control
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Build-Depends: debhelper (>= 8)
,libxtst-dev
,libxkbfile-dev
,libxres-dev
,libnvidia-fbc1 [amd64]
# ,libnvidia-fbc1 [amd64]
# very few Debian or Ubuntu distros have this library
# so we can't rely on it and we use the one that comes with CUDA instead:
# ,libnvjpeg10 [amd64]
Expand Down Expand Up @@ -57,71 +57,73 @@ Vcs-Git: https://github.com/Xpra-org/xpra
Vcs-Browser: https://github.com/Xpra-org/xpra


Package: xpra-codecs-nvidia
Architecture: any
Depends: xpra
,python3-pycuda
,python3 (>= 3.6)
Recommends: libnvidia-encode1
,libnvjpeg
,libnvidia-fbc1 [amd64]
Description: Proprietary nvidia picture and video codecs
for the xpra server and client: nvfbc, nvjpeg and nvenc.


Package: xpra-codecs
Package: xpra
Architecture: any
Depends: xpra
,${codecs:Depends}
,python3 (>= 3.6)
#sid: ,libspng0
#luna: ,libspng0
#jammy: ,libavif13
#kinetic: ,libavif14
#lunar: ,libavif15
#bookworm: ,libavif15
#sid: ,libavif15
#bookworm:Recommends: libspng0
Suggests: v4l2loopback-dkms
,xpra-codecs-nvidia
,python3-opencv
Description: Picture and video codecs
for the xpra server and client.
Depends: xpra-client, xpra-server
Description: tool to detach/reattach running X programs
Xpra gives you the functionality of GNU Screen for X applications.
.
It allows the user to view remote X applications on their local machine, and
disconnect and reconnect from the remote machine without losing the state of
the running applications.
.
Unlike VNC, these applications are "rootless". They appear as individual
windows inside your window manager rather than being contained within a single
window.


Package: xpra
Package: xpra-common
Conflicts: python2-xpra, python3-xpra
Architecture: any
Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}
,python3 (>= 3.6)
,python3-gi
,gir1.2-gtk-3.0
,python3-cairo
,python3-gi-cairo
# client opengl acceleration:
,python3-opengl
# image processing:
,python3-pil
,gir1.2-glib-2.0
Recommends:
,${x11:Depends}
# generate QR codes for authentication and connection URLs:
,${qrcode:Depends}
# legacy packet encoder:
,python3-rencode
# text packet compression:
,${brotli:Depends}
# ssh transport:
,python3-paramiko
,python3-dnspython
# AES encryption:
,python3-cryptography
# see sessions using mDNS:
,python3-zeroconf
# query network interfaces:
,python3-netifaces
# printer forwarding:
,python3-cups
Suggests: openssh-server
# only useful when connecting using a JSON / YAML only client:
,python3-yaml
Description: tool to detach/reattach running X programs, components common to client and server


Package: xpra-server
Architecture: any
Depends: xpra-common (= ${binary:Version})
,${python3:Depends}
,gir1.2-gtk-3.0
# ssl (generate cert), wss:
,openssl
# we need a vfb: either Xdummy or Xvfb
# (but Xdummy is broken on Debian, so stick with Xvfb)
# ,xserver-xorg-video-dummy
,xvfb,
#buster: ,xserver-xorg-video-dummy
#bullseye: ,xserver-xorg-video-dummy
#bookworm: ,xserver-xorg-video-dummy
#trixie: ,xserver-xorg-video-dummy
#sid: ,xserver-xorg-video-dummy
,xvfb
,keyboard-configuration
Recommends: xpra-codecs (= 5.0)
Recommends: xpra-codecs (= ${binary:Version})
,xpra-html5
# socket activation:
,libsystemd
# query parent pid:
,libproc2-0 | libprocps
# generate QR codes for authentication and connection URLs:
,libqrencode4
,${proc:Depends}
# control server sessions, access client desktop environment settings and properties:
,python3-dbus
# the server uses "dbus-launch" to enable dbus for its sessions:
Expand All @@ -130,77 +132,72 @@ Recommends: xpra-codecs (= 5.0)
,ibus
# set process name of the proxy server:
,python3-setproctitle
# legacy packet encoder:
,python3-rencode
# text packet compression:
,libbrotli1
# see sessions using mDNS:
,python3-zeroconf
# query network interfaces:
,python3-netifaces
# printer forwarding:
,python3-cups
# ssh transport:
,python3-paramiko
,python3-dnspython
# connections through proxies:
,python3-socks
# start menu and start-session GUI:
,python3-xdg
,python3-pyinotify
# hope that this will allow our status icon to be shown:
,gir1.2-appindicator3-0.1
,gir1.2-ayatanaappindicator3-0.1
# to be able to resize large svg icons:
,gir1.2-rsvg-2.0
# AES encryption:
,python3-cryptography
# printer forwarding:
,cups-filters
,cups-common
,cups-pdf
,cups-daemon
# most of the examples use an xterm:
,xterm
Suggests: openssh-server
# for CPU percentage in "xpra top"
,python-psutil
# to make the system tray work again with gnome-shell:
,gnome-shell-extension-top-icons-plus
,gnome-shell-extension-appindicator
# external ssh transport:
,openssh-client
# using SSH passwords from the GUI launcher:
,sshpass
# password prompts:
,pinentry-gnome3
Suggests: xpra-codecs-nvidia (= ${binary:Version})
,openssh-server
,python3-opengl
# authentication:
,python3-kerberos
,python3-gssapi
# keycloak authentication:
,python3-oauthlib
# webcam support:
,python3-opencv
# only useful when connecting using a JSON / YAML only client:
,python3-yaml
Description: tool to detach/reattach running X programs, server component


Package: xpra-client
Architecture: any
Depends: xpra-common (= ${binary:Version})
,${python3:Depends}
Recommends: python3-socks, xpra-client-gtk3
Suggests: python-psutil
# external ssh transport:
,openssh-client
# using SSH passwords with openssh-client:
,sshpass
#better debug output:
# ,python3-cpuinfo
Description: tool to detach/reattach running X programs
Xpra gives you the functionality of GNU Screen for X applications.
.
It allows the user to view remote X applications on their local machine, and
disconnect and reconnect from the remote machine without losing the state of
the running applications.
.
Unlike VNC, these applications are "rootless". They appear as individual
windows inside your window manager rather than being contained within a single
window.
Description: tool to detach/reattach running X programs, client component


Package: xpra-client-gtk3
Architecture: any
Depends: xpra-client (= ${binary:Version})
,${python3:Depends}
,gir1.2-gtk-3.0
Recommends: xpra-codecs (= ${binary:Version}), xpra-audio (= ${binary:Version})
# client opengl acceleration:)
,python3-opengl
# hope that this will allow our status icon to be shown:
,gir1.2-appindicator3-0.1
,gir1.2-ayatanaappindicator3-0.1
Suggests: xpra-codecs-nvidia (= ${binary:Version})
# for CPU percentage in "xpra top"
,python-psutil
# webcam support:
,python3-opencv
# to make the system tray work again with gnome-shell:
,gnome-shell-extension-top-icons-plus
,gnome-shell-extension-appindicator
# password prompts:
,pinentry-gnome3
Description: xpra client using GTK3 for the user interface


Package: xpra-audio
Architecture: any
Depends: xpra
,python3 (>= 3.6)
Depends: xpra-common (= ${binary:Version})
,${python3:Depends}
,pulseaudio
,gstreamer1.0-pulseaudio
,pulseaudio-utils
Expand All @@ -217,3 +214,35 @@ Recommends: gstreamer1.0-tools
# ^^ mp3 ^^
Description: Components required for xpra audio forwarding,
used by both client and servers.


Package: xpra-codecs
Architecture: any
Depends: xpra-common (= ${binary:Version})
,${codecs:Depends}
,${python3:Depends}
#sid: ,libspng0
#luna: ,libspng0
#jammy: ,libavif13
#kinetic: ,libavif14
#lunar: ,libavif15
#bookworm: ,libavif15
#sid: ,libavif15
#bookworm:Recommends: libspng0
Suggests: v4l2loopback-dkms
,xpra-codecs-nvidia
,python3-opencv
Description: Picture and video codecs
for the xpra server and client.


Package: xpra-codecs-nvidia
Architecture: any
Depends: xpra-codecs (= ${binary:Version})
,${python3:Depends}
,python3-pycuda
Recommends: libnvidia-encode1
,libnvjpeg
,libnvidia-fbc1 [amd64]
Description: Proprietary nvidia picture and video codecs
for the xpra server and client: nvfbc, nvjpeg and nvenc.
14 changes: 7 additions & 7 deletions packaging/debian/xpra/lintian-overrides
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# This is just where / how cups backends are installed properly:
xpra binary: non-standard-executable-perm usr/lib/cups/backend/xpraforwarder
xpra binary: executable-is-not-world-readable usr/lib/cups/backend/xpraforwarder
xpra binary: executable-in-usr-lib usr/lib/cups/backend/xpraforwarder
xpra-server binary: non-standard-executable-perm usr/lib/cups/backend/xpraforwarder
xpra-server binary: executable-is-not-world-readable usr/lib/cups/backend/xpraforwarder
xpra-server binary: executable-in-usr-lib usr/lib/cups/backend/xpraforwarder

# These files are part of Xpra internal logic
xpra binary: executable-in-usr-lib usr/libexec/xpra/auth_dialog
xpra binary: executable-in-usr-lib usr/libexec/xpra/gnome-open
xpra binary: executable-in-usr-lib usr/libexec/xpra/gvfs-open
xpra binary: executable-in-usr-lib usr/libexec/xpra/xdg-open
xpra-server binary: executable-in-usr-lib usr/libexec/xpra/auth_dialog
xpra-server binary: executable-in-usr-lib usr/libexec/xpra/gnome-open
xpra-server binary: executable-in-usr-lib usr/libexec/xpra/gvfs-open
xpra-server binary: executable-in-usr-lib usr/libexec/xpra/xdg-open

# We get the libc6 dependency from python and the 'xpra' package anyway:
xpra-codecs-nvidia binary: missing-dependency-on-libc
8 changes: 6 additions & 2 deletions packaging/debian/xpra/rules
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,12 @@ override_dh_installchangelogs:
dh_installchangelogs docs/CHANGELOG.md

override_dh_shlibdeps:
dh_shlibdeps -l /usr/lib/xpra -Xcodecs
dh_shlibdeps -l /usr/lib/xpra/codecs -Xnvidia/ -- -pcodecs
dh_shlibdeps -Xcodecs/ -Xx11 -Xgdk -Xgtk -Xbrotli/ -Xqrcode/ -Xproc_ -Xsd_listen
dh_shlibdeps -Xx11 -Xgdk -Xgtk -Xbrotli/ -Xqrcode/ -Xproc_ -Xsd_listen -- -pcodecs
dh_shlibdeps -Xcodecs/ -Xgdk -Xgtk -Xbrotli/ -Xqrcode/ -Xproc_ -Xsd_listen -- -px11
dh_shlibdeps -Xcodecs/ -Xx11 -Xgdk -Xgtk -Xqrcode/ -Xproc_ -Xsd_listen -- -pbrotli
dh_shlibdeps -Xcodecs/ -Xx11 -Xgdk -Xgtk -Xbrotli/ -Xproc_ -Xsd_listen -- -pqrcode
dh_shlibdeps -Xcodecs/ -Xx11 -Xgdk -Xgtk -Xbrotli/ -Xqrcode/ -Xsd_listen -- -pproc

override_dh_systemd_enable:
dh_systemd_enable --no-enable xpra.service
Expand Down
2 changes: 2 additions & 0 deletions packaging/debian/xpra/xpra-audio.files
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
usr/lib/python3*/*/xpra/sound/

14 changes: 14 additions & 0 deletions packaging/debian/xpra/xpra-client-gtk3.files
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
usr/bin/run_scaled
usr/bin/xpra_launcher
usr/lib/python3*/*/xpra/client/gui/
usr/lib/python3*/*/xpra/client/gtk_base/
usr/lib/python3*/*/xpra/client/gtk3/
usr/lib/python3*/*/xpra/client/gl/
usr/lib/python3*/*/xpra/client/mixins/
usr/libexec/xpra/xpra_signal_listener
etc/xpra/conf.d/42_client_keyboard.conf
usr/share/applications/xpra-launcher.desktop
usr/share/applications/xpra-gui.desktop
usr/share/applications/xpra.desktop
usr/share/mime/packages/application-x-xpraconfig.xml
usr/share/xpra/autostart.desktop
4 changes: 4 additions & 0 deletions packaging/debian/xpra/xpra-client.files
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
usr/lib/python3*/*/xpra/client/auth/
usr/lib/python3*/*/xpra/client/base/
usr/lib/python3*/*/xpra/client/__init__.py
etc/xpra/conf.d/40_client.conf
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
debian/tmp/usr/share/man/man1/xpra.1
debian/tmp/usr/share/man/man1/xpra_launcher.1
42 changes: 42 additions & 0 deletions packaging/debian/xpra/xpra-common.files
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
usr/bin/xpra
usr/share/xpra/README.md
usr/share/xpra/COPYING
usr/share/xpra/icons/
usr/share/xpra/*.wav
usr/share/man/man1/xpra*.1*
usr/share/man/man1/run_scaled*.1*
usr/share/metainfo/xpra.appdata.xml
usr/share/icons/xpra*png
usr/share/doc/xpra/
etc/default/xpra
etc/xpra/xpra.conf
etc/xpra/conf.d/05_features.conf
etc/xpra/conf.d/10_network.conf
etc/xpra/conf.d/12_ssl.conf
etc/xpra/conf.d/15_file_transfers.conf
etc/xpra/conf.d/16_printing.conf
etc/xpra/conf.d/20_sound.conf
etc/xpra/conf.d/30_picture.conf
etc/xpra/conf.d/35_webcam.conf
usr/lib/python3*/*/xpra/buffers/
usr/lib/python3*/*/xpra/clipboard/
usr/lib/python3*/*/xpra/notifications/
usr/lib/python3*/*/xpra/dbus/
usr/lib/python3*/*/xpra/gtk_common/
usr/lib/python3*/*/xpra/keyboard/
usr/lib/python3*/*/xpra/net/
usr/lib/python3*/*/xpra/platform/
usr/lib/python3*/*/xpra/scripts/
usr/lib/python3*/*/xpra/x11/
usr/lib/python3*/*/xpra/rectangle.*.so
usr/lib/python3*/*/xpra/*.py*
usr/lib/python3*/*/xpra/codecs/argb/
usr/lib/python3*/*/xpra/codecs/pillow/
usr/lib/python3*/*/xpra/codecs/__init__.py
usr/lib/python3*/*/xpra/codecs/codec_*.py*
usr/lib/python3*/*/xpra/codecs/icon_util.py
usr/lib/python3*/*/xpra/codecs/image_wrapper.py
usr/lib/python3*/*/xpra/codecs/loader.py
usr/lib/python3*/*/xpra/codecs/rgb_transform.py
usr/lib/python3*/*/xpra/codecs/video_helper.py

1 change: 1 addition & 0 deletions packaging/debian/xpra/xpra-common.manpages
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
debian/tmp/usr/share/man/man1/xpra.1
Loading

0 comments on commit fc24011

Please sign in to comment.