Skip to content

Commit

Permalink
#3651 we have to use dh_shlibdeps
Browse files Browse the repository at this point in the history
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
  • Loading branch information
totaam committed Oct 18, 2022
1 parent 70aa55e commit 22627f8
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 74 deletions.
127 changes: 56 additions & 71 deletions packaging/debian/xpra/control
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,15 @@ Build-Depends: debhelper (>= 8)
,libxkbfile-dev
,libxres-dev
,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]
,libdrm-dev
# even unstable ships an oudated version!
# (hopefully this can be updated some day)
# (hopefully this can be enabled some day)
# ,libevdi0-dev
# this codec is not usable yet:
# ,libavif-dev
,libvpx-dev
,libx264-dev
,libwebp-dev
Expand All @@ -40,9 +45,6 @@ Build-Depends: debhelper (>= 8)
,libbrotli-dev
,libqrencode-dev
,pandoc
#jammy: ,libavif-dev
#bookworm: ,libavif-dev
#sid: ,libavif-dev
Standards-Version: 3.9.3
Homepage: https://xpra.org/
Vcs-Git: https://github.com/Xpra-org/xpra
Expand All @@ -52,107 +54,96 @@ Vcs-Browser: https://github.com/Xpra-org/xpra
Package: xpra
Conflicts: python2-xpra, python3-xpra
Architecture: any
Depends: ${misc:Depends}, ${python3:Depends}
,libc
Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}
,python3 (>= 3.6)
,python3-gi
,gir1.2-gtk-3.0
,python3-cairo
,python3-gi-cairo
# X11 libraries:
,libx11
,libxcomposite
,libxdamage
,libxtst
,libxkbfile
,libxres
,libdrm
# System libraries:
,libpam0g
,liblz4
#jammy: ,libavif-dev
# even unstable ships an oudated version!
# for opengl support:
# client opengl acceleration:
,python3-opengl
# for PNG and JPEG support:
# image processing:
,python3-pil
# ssl (generate cert), wss:
,openssl
#we need a vfb: either Xdummy or Xvfb
# ,xserver-xorg-video-dummy | xserver-xorg-video-dummy-hwe
# 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
,keyboard-configuration
# for notifications forwarding and dbus server / proxying:
Recommends: xpra-codecs
,xpra-html5
# socket activation:
,libsystemd
# query parent pid:
,libprocps
# generate QR codes for authentication and connection URLs:
,libqrencode4
# control server sessions, access client desktop environment settings and properties:
,python3-dbus
# for the proxy server:
# the server uses "dbus-launch" to enable dbus for its sessions:
,dbus-x11
# preferred input method:
,ibus
# set process name of the proxy server:
,python3-setproctitle
# packet encoder:
# legacy packet encoder:
,python3-rencode
# text packet compression:
,libbrotli1
#not available?
# see sessions using mDNS:
,python3-zeroconf
# query network interfaces:
,python3-netifaces
#authentication:
,python3-kerberos
,python3-gssapi
#for printer forwarding:
# printer forwarding:
,python3-cups
#for ssh transport:
# ssh transport:
,python3-paramiko
,python3-dnspython
#for connections through proxies
# connections through proxies:
,python3-socks
#the start-session GUI:
# start menu and start-session GUI:
,python3-xdg
,python3-pyinotify
#hope that this will allow our status icon to be shown:
# hope that this will allow our status icon to be shown:
,gir1.2-appindicator3-0.1 | gir1.2-ayatanaappindicator3
#to be able to resize large svg icons:
# to be able to resize large svg icons:
,gir1.2-rsvg-2.0
# we use dbus for many things - this provides "dbus-launch":
,dbus-x11
# preferred input method:
,ibus
# AES encryption:
,python3-cryptography
#for printer forwarding:
# printer forwarding:
,cups-filters
,cups-common
,cups-pdf
,cups-daemon
#for ssh transport:
,openssh-client
#for using SSH passwords from the GUI launcher:
,sshpass
#most of the examples use an xterm:
# most of the examples use an xterm:
,xterm
Suggests: openssh-server
# for CPU percentage in "top"
# 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
# authentication:
,python3-kerberos
,python3-gssapi
# keycloak authentication:
,python3-oauthlib
# for webcam support:
# webcam support:
,python3-opencv
# only useful when connecting using a JSON / YAML only client:
,python3-yaml
# AES encryption:
,python3-cryptography
#better debug output:
# ,python3-cpuinfo
Description: tool to detach/reattach running X programs
Expand All @@ -169,7 +160,7 @@ Description: tool to detach/reattach running X programs

Package: xpra-audio
Architecture: any
Depends: python3
Depends: xpra
,pulseaudio
,gstreamer1.0-pulseaudio
,pulseaudio-utils
Expand All @@ -182,33 +173,27 @@ Recommends: gstreamer1.0-tools
# ^^ wavpack, wav, flac, speex ^^
,gstreamer1.0-plugins-ugly
# ^^ mp3 ^^
Description: these are the components required for xpra audio forwarding,
Description: the components required for xpra audio forwarding,
used by both client and servers.


Package: xpra-codecs
Architecture: any
Depends: python3 (>= 3.6)
,libc
,v4l2loopback-dkms
,libvpx
,libx264
,libwebp
,libturbojpeg
,libavcodec-dev [!i386]
,libavformat-dev [!i386]
,libavutil-dev [!i386]
,libswscale-dev [!i386]
Depends: xpra
,${codecs:Depends}
Recommends: xpra-codecs-nvidia
Suggests: v4l2loopback-dkms, python3-opencv
Description: these are the picture and video codecs
Suggests: v4l2loopback-dkms
,python3-opencv
Description: the picture and video codecs
for the xpra server and client.


Package: xpra-codecs-nvidia
Architecture: any
Depends: python3 (>= 3.6)
,libc
,libnvidia-fbc1 [amd64]
,python3-pycuda,
,libnvidia-encode1
Description: these are the proprietary nvidia picture and video codecs
Depends: xpra
,python3-pycuda
Recommends: libnvidia-encode1
,libnvjpeg
,libnvidia-fbc1 [amd64]
Description: the proprietary nvidia picture and video codecs
for the xpra server and client: nvfbc, nvjpeg and nvenc.
3 changes: 2 additions & 1 deletion packaging/debian/xpra/rules
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ override_dh_installchangelogs:
dh_installchangelogs docs/CHANGELOG.md

override_dh_shlibdeps:
dh_shlibdeps -l /usr/lib/xpra -Xfbc_capture -Xnvjpeg
dh_shlibdeps -l /usr/lib/xpra -Xcodecs
dh_shlibdeps -l /usr/lib/xpra/codecs -Xnvidia/ -- -pcodecs

override_dh_systemd_enable:
dh_systemd_enable --no-enable xpra.service
Expand Down
2 changes: 1 addition & 1 deletion packaging/debian/xpra/xpra-codecs-nvidia.install
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
usr/share/xpra/cuda/*
usr/share/xpra/cuda
#etc/xpra/cuda.conf
usr/lib/python3*/*/xpra/codecs/nvidia
1 change: 0 additions & 1 deletion packaging/debian/xpra/xpra.install
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ usr/share/xpra/README*
usr/share/xpra/bell.wav
usr/share/xpra/icons/*.png
usr/share/xpra/css/*
usr/share/xpra/cuda/*
usr/share/xpra/autostart.desktop
etc/xpra/*.conf
etc/xpra/conf.d/*conf
Expand Down

0 comments on commit 22627f8

Please sign in to comment.