summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-wm/xpra/xpra-4.4.6.ebuild')
-rw-r--r--x11-wm/xpra/xpra-4.4.6.ebuild220
1 files changed, 220 insertions, 0 deletions
diff --git a/x11-wm/xpra/xpra-4.4.6.ebuild b/x11-wm/xpra/xpra-4.4.6.ebuild
new file mode 100644
index 000000000000..45f19d022704
--- /dev/null
+++ b/x11-wm/xpra/xpra-4.4.6.ebuild
@@ -0,0 +1,220 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="https://github.com/Xpra-org/xpra.git"
+ inherit git-r3
+else
+ inherit pypi
+ KEYWORDS="~amd64 ~x86"
+fi
+
+PYTHON_COMPAT=( python3_{9..11} )
+DISTUTILS_SINGLE_IMPL=yes
+DISTUTILS_USE_SETUPTOOLS=no
+DISTUTILS_EXT=1
+
+inherit xdg xdg-utils distutils-r1 tmpfiles udev
+
+DESCRIPTION="X Persistent Remote Apps (xpra) and Partitioning WM (parti) based on wimpiggy"
+HOMEPAGE="https://xpra.org/"
+LICENSE="GPL-2 BSD"
+SLOT="0"
+IUSE="brotli +client +clipboard crypt csc cups dbus doc ffmpeg jpeg html ibus +lz4 lzo minimal oauth opengl pillow pinentry pulseaudio +server sound systemd test +trayicon udev vpx webcam webp xdg xinerama"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ || ( client server )
+ cups? ( dbus )
+ oauth? ( server )
+ opengl? ( client )
+ test? ( client clipboard crypt dbus html server sound xdg xinerama )
+"
+
+TEST_DEPEND="
+ $(python_gen_cond_dep '
+ dev-python/netifaces[${PYTHON_USEDEP}]
+ dev-python/pillow[jpeg?,${PYTHON_USEDEP}]
+ dev-python/rencode[${PYTHON_USEDEP}]
+ dbus? ( dev-python/dbus-python[${PYTHON_USEDEP}] )
+ xdg? ( dev-python/pyxdg[${PYTHON_USEDEP}] )
+ ')
+ html? ( www-apps/xpra-html5 )
+ server? (
+ x11-base/xorg-server[-minimal,xvfb]
+ x11-drivers/xf86-input-void
+ )
+ xinerama? ( x11-libs/libfakeXinerama )
+"
+DEPEND="
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pygobject:3[${PYTHON_USEDEP},cairo]
+ opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] )
+ sound? ( dev-python/gst-python:1.0[${PYTHON_USEDEP}] )
+ ')
+ x11-libs/gtk+:3[introspection]
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXfixes
+ x11-libs/libXrandr
+ x11-libs/libXres
+ x11-libs/libXtst
+ x11-libs/libxkbfile
+ brotli? ( app-arch/brotli )
+ csc? ( >=media-video/ffmpeg-1.2.2:0= )
+ ffmpeg? ( >=media-video/ffmpeg-3.2.2:0=[x264] )
+ jpeg? ( media-libs/libjpeg-turbo )
+ pulseaudio? (
+ media-libs/libpulse
+ media-plugins/gst-plugins-pulse:1.0
+ )
+ sound? (
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ )
+ vpx? ( media-libs/libvpx media-video/ffmpeg )
+ webp? ( media-libs/libwebp )
+"
+RDEPEND="
+ ${DEPEND}
+ ${TEST_DEPEND}
+ $(python_gen_cond_dep '
+ crypt? ( dev-python/cryptography[${PYTHON_USEDEP}] )
+ cups? ( dev-python/pycups[${PYTHON_USEDEP}] )
+ lz4? ( dev-python/lz4[${PYTHON_USEDEP}] )
+ lzo? ( >=dev-python/python-lzo-0.7.0[${PYTHON_USEDEP}] )
+ oauth? ( dev-python/oauthlib[${PYTHON_USEDEP}] )
+ opengl? ( dev-python/pyopengl_accelerate[${PYTHON_USEDEP}] )
+ webcam? (
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ media-libs/opencv[${PYTHON_USEDEP},python]
+ )
+ ')
+ acct-group/xpra
+ virtual/ssh
+ x11-apps/xauth
+ x11-apps/xmodmap
+ ibus? ( app-i18n/ibus )
+ pinentry? ( app-crypt/pinentry )
+ trayicon? ( dev-libs/libayatana-appindicator )
+ udev? ( virtual/udev )
+"
+DEPEND+="
+ test? ( ${TEST_DEPEND} )
+"
+BDEPEND="
+ $(python_gen_cond_dep '
+ >=dev-python/cython-0.16[${PYTHON_USEDEP}]
+ ')
+ virtual/pkgconfig
+ doc? ( virtual/pandoc )
+"
+
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.4-xdummy.patch
+)
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # FIXME: There are hardcoded paths all over the place but the following
+ # double-prefixes some files under /etc. Looks tricky to fix. :(
+ #hprefixify $(find -type f \( -name "*.py" -o -name "*.conf" \))
+
+ sed -r -e "/\bdoc_dir =/s:/${PN}/\":/${PF}/html\":" \
+ -i setup.py || die
+
+ if use minimal; then
+ sed -r -e '/pam_ENABLED/s/DEFAULT/False/' \
+ -e 's/^(xdg_open)_ENABLED = .*/\1_ENABLED = False/' \
+ -i setup.py || die
+ fi
+}
+
+python_configure_all() {
+ sed -e "/'pulseaudio'/s:DEFAULT_PULSEAUDIO:$(usex pulseaudio True False):" \
+ -i setup.py || die
+
+ DISTUTILS_ARGS=(
+ --without-PIC
+ --without-Xdummy
+ $(use_with client)
+ $(use_with clipboard)
+ $(use_with csc csc_swscale)
+ --without-csc_libyuv
+ --without-cuda_rebuild
+ --without-cuda_kernels
+ $(use_with cups printing)
+ --without-debug
+ $(use_with dbus)
+ $(use_with doc docs)
+ $(use_with ffmpeg dec_avcodec2)
+ $(use_with ffmpeg enc_ffmpeg)
+ $(use_with ffmpeg enc_x264)
+ --without-enc_x265
+ --with-gtk3
+ $(use_with jpeg jpeg_encoder)
+ $(use_with jpeg jpeg_decoder)
+ --without-mdns
+ --without-sd_listen
+ --without-service
+ $(use_with opengl)
+ $(use_with server shadow)
+ $(use_with server)
+ $(use_with sound)
+ --without-strict
+ $(use_with vpx)
+ --with-warn
+ $(use_with webcam)
+ $(use_with webp)
+ --with-x11
+ )
+
+ export XPRA_SOCKET_DIRS="${EPREFIX}/run/xpra"
+}
+
+python_test() {
+ export XAUTHORITY=${HOME}/.Xauthority
+ touch "${XAUTHORITY}" || die
+
+ distutils_install_for_testing
+ xdg_environment_reset
+
+ env -u WAYLAND_DISPLAY -u XDG_SESSION_TYPE \
+ PYTHONPATH="${S}/tests/unittests:${BUILD_DIR}/test/lib" \
+ XPRA_SYSTEMD_RUN=$(usex systemd) XPRA_TEST_COVERAGE=0 \
+ "${PYTHON}" "${S}"/tests/unittests/unit/run.py || die
+}
+
+python_install_all() {
+ distutils-r1_python_prepare_all
+
+ # Move udev dir to the right place if necessary.
+ if use udev; then
+ local dir=$(get_udevdir)
+ if [[ ! ${ED}/usr/lib/udev -ef ${ED}${dir} ]]; then
+ dodir "${dir%/*}"
+ mv -vnT "${ED}"/usr/lib/udev "${ED}${dir}" || die
+ fi
+ else
+ rm -vr "${ED}"/usr/lib/udev || die
+ rm -v "${ED}"/usr/libexec/xpra/xpra_udev_product_version || die
+ fi
+}
+
+pkg_postinst() {
+ tmpfiles_process xpra.conf
+ xdg_pkg_postinst
+ use udev && udev_reload
+}
+
+pkg_postrm() {
+ xdg_pkg_postinst
+ use udev && udev_reload
+}