diff options
Diffstat (limited to 'x11-wm/xpra')
-rw-r--r-- | x11-wm/xpra/Manifest | 1 | ||||
-rw-r--r-- | x11-wm/xpra/files/xpra-4.2.3-dup-ip.patch | 30 | ||||
-rw-r--r-- | x11-wm/xpra/xpra-4.2.3.ebuild | 199 |
3 files changed, 230 insertions, 0 deletions
diff --git a/x11-wm/xpra/Manifest b/x11-wm/xpra/Manifest index 9eb5666590ea..e38e029bc478 100644 --- a/x11-wm/xpra/Manifest +++ b/x11-wm/xpra/Manifest @@ -1,3 +1,4 @@ DIST xpra-4.2.1.tar.gz 3878766 BLAKE2B c537b54b8ea5cc1ad2909eeccf61eba59a518165eb72c7d4984d26f378e4babca997c2f6cf78f5ba947edbc4ad6c4085c86793aad9b01f1fca2b22b1daaabda9 SHA512 553d8c11f1a77a2a58cbad7df0d899c611e21eb01dad3516f99f1fb9cc7a4507ba7557807b62ddea7101ca01bab123962a34b9c3369db06d1bb318debd91dc55 DIST xpra-4.2.2.tar.gz 3894227 BLAKE2B a25dde9c3732e31cd8127393f89f2495e01896d18d5212b141b4046c265a9ead029bed68c9610c2330ec0a885af1eeb3f92aef2c16dd102293e34ac208be605a SHA512 3f81b5a2f7abdfc14f7e48ec708524e38142b984e6539e94a27b6aef7b5a5e063ef14e6b7383a7719ecc7687c62f49eeeb5668282c337d90a79194c354dedd24 +DIST xpra-4.2.3.tar.gz 3897648 BLAKE2B e9d3b4f07f8fae88ad410201a503bc5c738daae91640843cfce2b70da03e916295709bb74ffbb5e70f8e8ba2dcc3085861bdd9b097d24096ccba332693cc076b SHA512 cebec316a0cbd673907379b54248901743a8bf6b6d25c7b36465794da4e1b19296b5fd465df8ba9d563b2a246fab572fa8db25c24c511da9ddc340a8c95557d5 DIST xpra-4.2.tar.gz 4057304 BLAKE2B 17b6a95f7ce24a311c39d09291d9570285c30f25c2d935389cb380c2fce698acd984821e69acaabd66368e76b5beddd01803a68d6a16dd930dd2fa3289532f10 SHA512 261d46c04ce70686f41873c5c0c115e462e3b2501c58ab05fb2904f4700454c5fb8124d0faf86fe5e982872f19a4b90b941f8aff4790f7206602d6030c005353 diff --git a/x11-wm/xpra/files/xpra-4.2.3-dup-ip.patch b/x11-wm/xpra/files/xpra-4.2.3-dup-ip.patch new file mode 100644 index 000000000000..337527305ecc --- /dev/null +++ b/x11-wm/xpra/files/xpra-4.2.3-dup-ip.patch @@ -0,0 +1,30 @@ +diff --git a/tests/unittests/unit/net/net_util_test.py b/tests/unittests/unit/net/net_util_test.py +index 5c6e3096c..870801666 100755 +--- a/tests/unittests/unit/net/net_util_test.py ++++ b/tests/unittests/unit/net/net_util_test.py +@@ -27,11 +27,8 @@ class TestVersionUtilModule(unittest.TestCase): + ifaces = get_interfaces() + if not ifaces: + return ++ ip_ifaces = defaultdict(list) + for iface in ifaces: +- ipmasks = do_get_bind_ifacemask(iface) +- for ip, _ in ipmasks: +- assert get_iface(ip)==iface, "expected interface %s for ip %s but got %s" % ( +- iface, ip, get_iface(ip)) + if if_nametoindex: + try: + i = if_nametoindex(iface) +@@ -41,6 +38,12 @@ class TestVersionUtilModule(unittest.TestCase): + if if_indextoname: + assert if_indextoname(i)==iface, "expected interface %s for index %i but got %s" % ( + iface, i, if_indextoname(i)) ++ ipmasks = do_get_bind_ifacemask(iface) ++ for ip, _ in ipmasks: ++ ip_ifaces[ip].append(iface) ++ for ip, ifaces in ip_ifaces.items(): ++ assert get_iface(ip) in ifaces, "expected interface for ip %s to be one of %s but got %s" % ( ++ ip, ifaces, get_iface(ip)) + ia = get_interfaces_addresses() + assert ia + #for iface, address in ia.items(): diff --git a/x11-wm/xpra/xpra-4.2.3.ebuild b/x11-wm/xpra/xpra-4.2.3.ebuild new file mode 100644 index 000000000000..6280862e546a --- /dev/null +++ b/x11-wm/xpra/xpra-4.2.3.ebuild @@ -0,0 +1,199 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7,8,9} ) +DISTUTILS_SINGLE_IMPL=yes +DISTUTILS_USE_SETUPTOOLS=no +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/" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="GPL-2 BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="brotli +client +clipboard csc cups dbus doc ffmpeg jpeg html ibus +lz4 lzo minimal opengl pillow pinentry pulseaudio +server sound systemd test vpx webcam webp xdg xinerama" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + || ( client server ) + cups? ( dbus ) + opengl? ( client ) + test? ( client clipboard dbus html server sound xdg xinerama ) +" + +TDEPEND=" + $(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/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,x265] ) + jpeg? ( media-libs/libjpeg-turbo ) + pulseaudio? ( + media-sound/pulseaudio + 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} + ${TDEPEND} + $(python_gen_cond_dep ' + cups? ( dev-python/pycups[${PYTHON_USEDEP}] ) + lz4? ( dev-python/lz4[${PYTHON_USEDEP}] ) + lzo? ( >=dev-python/python-lzo-0.7.0[${PYTHON_USEDEP}] ) + opengl? ( + client? ( 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 ) +" +DEPEND+=" + test? ( ${TDEPEND} ) +" +BDEPEND=" + $(python_gen_cond_dep ' + >=dev-python/cython-0.16[${PYTHON_USEDEP}] + ') + virtual/pkgconfig + doc? ( app-text/pandoc ) +" + +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}"/${PN}-3.0.2_ignore-gentoo-no-compile.patch + "${FILESDIR}"/${PN}-4.2-suid-warning.patch + "${FILESDIR}"/${PN}-4.2.2-true-false-bin-path.patch + "${FILESDIR}"/${PN}-4.2.3-dup-ip.patch + "${FILESDIR}"/${PN}-4.2.2-bad-tests.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 's/^(pam|scripts|xdg_open)_ENABLED.*/\1_ENABLED=False/' \ + -i setup.py || die + fi + + # Upstream says these tests are currently broken. + rm tests/unittests/unit/net/subprocess_wrapper_test.py tests/unittests/unit/net/protocol_test.py || die +} + +python_configure_all() { + sed -e "/'pulseaudio'/s:DEFAULT_PULSEAUDIO:$(usex pulseaudio True False):" \ + -i setup.py || die + + mydistutilsargs=( + --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) + $(use_with ffmpeg enc_x265) + --with-gtk3 + $(use_with jpeg jpeg_encoder) + $(use_with jpeg jpeg_decoder) + --without-mdns + $(use_with opengl) + $(use_with server shadow) + $(use_with server) + $(use_with sound) + --with-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 + + PYTHONPATH=${S}/tests/unittests:${BUILD_DIR}/test/lib \ + XPRA_SYSTEMD_RUN=$(usex systemd) XPRA_TEST_COVERAGE=0 \ + "${PYTHON}" tests/unittests/unit/run.py || die +} + +python_install_all() { + distutils-r1_python_prepare_all + + # Move udev dir to the right place. + local dir=$(get_udevdir) + dodir "${dir%/*}" + mv -vnT "${ED}"/usr/lib/udev "${ED}${dir}" || die +} + +pkg_postinst() { + tmpfiles_process xpra.conf + xdg_pkg_postinst +} |