diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-06-11 00:08:05 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-06-11 00:08:05 +0100 |
commit | 65ff3cc3bd9c3f8e718a67dfecf1f8215bf5d1d4 (patch) | |
tree | 541cbae0eb51d2fdb39d64b3d135d1a6f7994dc8 /x11-wm/xpra | |
parent | 0aad4cd3e3fe3db90904ffc51b35e4ff160b53c5 (diff) |
gentoo auto-resync : 11:06:2024 - 00:08:04
Diffstat (limited to 'x11-wm/xpra')
-rw-r--r-- | x11-wm/xpra/Manifest | 12 | ||||
-rw-r--r-- | x11-wm/xpra/files/xpra-9999-pep517.patch | 12 | ||||
-rw-r--r-- | x11-wm/xpra/metadata.xml | 4 | ||||
-rw-r--r-- | x11-wm/xpra/xpra-4.4.5-r2.ebuild | 7 | ||||
-rw-r--r-- | x11-wm/xpra/xpra-4.4.6-r2.ebuild | 9 | ||||
-rw-r--r-- | x11-wm/xpra/xpra-6.0.1.ebuild | 376 | ||||
-rw-r--r-- | x11-wm/xpra/xpra-6.9999.ebuild | 376 | ||||
-rw-r--r-- | x11-wm/xpra/xpra-9999.ebuild | 296 |
8 files changed, 1007 insertions, 85 deletions
diff --git a/x11-wm/xpra/Manifest b/x11-wm/xpra/Manifest index ed8bf2b3fe3a..b91c0f180b70 100644 --- a/x11-wm/xpra/Manifest +++ b/x11-wm/xpra/Manifest @@ -1,9 +1,13 @@ AUX xpra-4.4-xdummy.patch 614 BLAKE2B 9b502fa836caea212f90730e0238adb16c74814a55a2a5b32e062880d29b1fa05247fc3c5e8edddf0acdd1d93620dafb507ec9a14996c3aea248d204510a0e2c SHA512 71efb726f50b85890bb3508bd3943b3bb9e34a8f5d3c92c6fa4f7c2ea6b8c51551243ea0d4d52802f17e5aaed7716b9ee0b462cde1941dae9273651dcc461a9a AUX xpra-4.4.6_minimal-features.patch 766 BLAKE2B a27634a600d6431a2812a61bff854e0d5dd5d296f0011c22e511cb438c899df096e3210972fa19ea3d47b3429873741075fd9a4bb6daeb1dece60527c60d156e SHA512 6d6f2c9718b12176b272582b3ab6b80f9dfe9c52e975925d24e529be1694aafc3bc340bd0afea164d169bb008c527bacffb36ada3ab59ebd8dab7df2763afcde +AUX xpra-9999-pep517.patch 282 BLAKE2B 5e94bc5c882ae768bc1e8f89e2077b551b2841801448cba3883e63954bb2cefcf21c8a631623590039670eac32c2d717ff38f60efa96200421684151b96e72d2 SHA512 62a4ca3e26141417dc928b1d06e852a7118143555af43ca3af05087f01bb1a6ca319835dd6c2dc6ac339f7f8742a004b4fe9e041903c6bd55d1259d388413605 AUX xpra-9999-xdummy.patch 489 BLAKE2B 284d109be06fc68dc6567adab1c8e514a69a316e82041175dac530eb190ed2d42b9572ca8cd722dae1295b9c84f35ec750953a80dc0064d835de0d3cc0bf8447 SHA512 98daab5c16755564af06bf139e3b57e2f88dd2ce3503eb75d79f066f8ed3efab4c668e9dc00988267b3ca0f876a607df332a9fcfe7f00c1d54a0d84c01159c17 DIST xpra-4.4.5.tar.gz 4332287 BLAKE2B 64165a18d0f204247f984f616438252e82922447441376e6e46a15509486e67f699e852562cd632591fd2831a86592d5029c5905932fc9d267b16a7e6edd1b5a SHA512 6fb28328efc020969fff17bf747a1e0bf5b21869c9532a8c482e12f979d1dec7989e10e5bf3a9ae7dbfaa9e48c670255b196fdb819200a74dfbdec3ba5ae744f DIST xpra-4.4.6.tar.gz 4334932 BLAKE2B 0518c6807be85777bb67b0a3283a610c06a97813671bff6edc701533aaa8f26b96e423e56ba56491ede120697277f6935ee26976b49550dfd2d52bbcd2daebd8 SHA512 273ee959647c1281f18c7b1b24d3a5179c4b6ce81515cc34618c698e55bdc2a8e94f0e236d7ab41c7bf29fa7fde0b1a2a1432445b8aaaa0a75cd5a90f4858419 -EBUILD xpra-4.4.5-r2.ebuild 5457 BLAKE2B d2896d731465a657e0ff214b8c2f91173398956a430ddd5a5dc80bc00b3767e93adb406441d9320ef6ae5d39ca6ae363deac3660e4ebf5ba90b91e50e3ecbf61 SHA512 80e0960496bed8217eedae760d8aa561be4e650b67eee4672d4c3cf9558c52716ff7f280837e15fca59048573b8c6b3a845d46b48ec8689344002900826174a3 -EBUILD xpra-4.4.6-r2.ebuild 5791 BLAKE2B ca4a800fb7caad3be0135a685f94f55e617ff807a3f2103ca1b00454c3d06943976a09c7d1a4f092073916ec50a7636856321cd9a4c974402309371f942d3e89 SHA512 78280d7eb95fac1512d99cbdfaf6ff784b625917ad403320fb722a8ecd2f88d165090f3ff1ea525547f39deb100ad2d7e8d40df98dc329443d2c77c3fc8af861 -EBUILD xpra-9999.ebuild 5722 BLAKE2B ae1931be06a8218ffc7609931b1fc70d78c1d8d5e485120e5a2b65c5ba55d9aacdee146c4667269db6eb6d351d7f4563916b1f1c075032b6ca77af23a32575bf SHA512 0bbb2ec31c5d2294aac44b4766a83098b0c54b343ddf3afa46f092fe009a90d5bf561f8300048ce400f809c71c0a0c229bf805f58697ce805e432008f99f66bd -MISC metadata.xml 1356 BLAKE2B a07cdad84d1f185bc0d446426508c6f3468157dbdcffa53508c00cf35846b97681270719d77876380b39a048dbdb769b4954aa91abc8f7aa913aa785bd36d3b5 SHA512 ed737d072b0f5481e936d6a6ddc87c789f77d28a4ebcf7c4eb4ed33d84ca0fe22dfdacf0c65e01ea57c38993394ee79ac026e9a4dccc269ff95c03efa020ef36 +DIST xpra-6.0.1.tar.gz 17214848 BLAKE2B 81a26cd9aa9a61241ba47bc6712cd225499a82a8743c4f5655f4529d525788789452daaa0894a2cb9292caa7fd9aa64f82ce5b347c9c168815198e18145629b9 SHA512 3520dec19bb6999fc19ffcd3c385545f4a61f7cf50d4d6930eb39dec1341c79f6c4c8c45d526f43b33ed78d5359524103fcf1608dc705b40e330a7eb53de2475 +EBUILD xpra-4.4.5-r2.ebuild 5490 BLAKE2B 52016b3236e02352b51d6a48f2530a5aef306711a0bfbe788eb855b6a0b58f5afe5eea589f6da5d3236bd7ba22dd1a65e6b3807be1665076780f5f4aee6c0309 SHA512 60514bb05b1731d8692a041ad8f4ade2daa17ec4052b2082f15251e345e3530ea2e4f1487716b288556be2e7df31cde84b750dcc06dc6467be83935df49c8c3b +EBUILD xpra-4.4.6-r2.ebuild 5811 BLAKE2B 2ae6c3eee1bbd1a72881b4a4c0d7057d14784543850cae09d339fd69145f81abfceb5c6f9bc1d087ead8949217d0f795398d2e218334322495a6486187e906a4 SHA512 6b453de91ec1d28b7e1cb589aeae2833501456837cf08c4a8572f1afa07b22de13fb6a0b4d3704e6ea05f7b5acad269963d311469b16f0bc98c4323ef1e4b952 +EBUILD xpra-6.0.1.ebuild 9697 BLAKE2B 8261e51d9b7691caf64e342992ac3435110bf2076ed09a9cdbe9a42f6a59e01c85b0a169296148466ad58eb7d481b11053bbd7356f9cdad6795527a424471aeb SHA512 40a85033d5ec37836e428c151638e8e5eb7c1c2470030ef236c1b81bdb465d6af29ff1aa112f78ece7058c2ceb30134609a8207ef116727b39e94c91a62e8cff +EBUILD xpra-6.9999.ebuild 9697 BLAKE2B 8261e51d9b7691caf64e342992ac3435110bf2076ed09a9cdbe9a42f6a59e01c85b0a169296148466ad58eb7d481b11053bbd7356f9cdad6795527a424471aeb SHA512 40a85033d5ec37836e428c151638e8e5eb7c1c2470030ef236c1b81bdb465d6af29ff1aa112f78ece7058c2ceb30134609a8207ef116727b39e94c91a62e8cff +EBUILD xpra-9999.ebuild 9697 BLAKE2B 8261e51d9b7691caf64e342992ac3435110bf2076ed09a9cdbe9a42f6a59e01c85b0a169296148466ad58eb7d481b11053bbd7356f9cdad6795527a424471aeb SHA512 40a85033d5ec37836e428c151638e8e5eb7c1c2470030ef236c1b81bdb465d6af29ff1aa112f78ece7058c2ceb30134609a8207ef116727b39e94c91a62e8cff +MISC metadata.xml 1672 BLAKE2B 00666bfb353074732f6138745f9b27d94ef2716c19f11c21c6dd475eb0632bcfc8ebfd947393e26f0dcc2c9c2a6a2bd47506cc2ee8a43e7ec2ad8ab2bb472c7d SHA512 f19919242f8867eb9a74c6dc82862ca742e80e05b3fb6956b9611743973cd67707c95e0e294543af6836019602b82c4e1cd017b4e158b68575cfd413bf52e5c0 diff --git a/x11-wm/xpra/files/xpra-9999-pep517.patch b/x11-wm/xpra/files/xpra-9999-pep517.patch new file mode 100644 index 000000000000..48e355913b27 --- /dev/null +++ b/x11-wm/xpra/files/xpra-9999-pep517.patch @@ -0,0 +1,12 @@ +diff --git a/pyproject.toml b/pyproject.toml +index 501829c18..842a2b962 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,6 +1,7 @@ + [build-system] + requires = ["setuptools", "cython"] + build-backend = "setuptools.build_meta" ++backend-path = [ "" ] + + [project] + name = "xpra" diff --git a/x11-wm/xpra/metadata.xml b/x11-wm/xpra/metadata.xml index 2f4961963d03..9b78c23e894e 100644 --- a/x11-wm/xpra/metadata.xml +++ b/x11-wm/xpra/metadata.xml @@ -23,9 +23,13 @@ <flag name="clipboard">Enable clipboard support</flag> <flag name="csc">Enable csc softscaler support</flag> <flag name="html">Install the HTML5 client</flag> + <flag name="gtk3">Enable the GTK3 client</flag> <flag name="ibus">Use ibus input method via <pkg>app-i18n/ibus</pkg></flag> + <flag name="mdns">Enable Multicast DNS via <pkg>dev-libs/mdns</pkg></flag> <flag name="oauth">Enable OAuth2 authentication in the server</flag> + <flag name="openh264">Enable H.264 support using <pkg>media-libs/openh264</pkg></flag> <flag name="pinentry">Use <pkg>app-crypt/pinentry</pkg> for password entry</flag> + <flag name="qrcode">Enable generating QRCodes for server URL via <pkg>media-gfx/qrencode</pkg></flag> <flag name="trayicon">Enable system tray icon</flag> <flag name="server">Build server-side code</flag> <flag name="vpx">Enable vpx image format support</flag> diff --git a/x11-wm/xpra/xpra-4.4.5-r2.ebuild b/x11-wm/xpra/xpra-4.4.5-r2.ebuild index 64f6dfde2400..2069b11904d4 100644 --- a/x11-wm/xpra/xpra-4.4.5-r2.ebuild +++ b/x11-wm/xpra/xpra-4.4.5-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -11,18 +11,19 @@ else KEYWORDS="amd64 x86" fi -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..11} ) DISTUTILS_SINGLE_IMPL=yes DISTUTILS_USE_SETUPTOOLS=no DISTUTILS_EXT=1 -inherit xdg xdg-utils distutils-r1 tmpfiles udev +inherit xdg 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 pinentry pulseaudio +server sound systemd test +trayicon udev vpx webcam webp xdg xinerama" +IUSE+=" +python_single_target_python3_11" REQUIRED_USE="${PYTHON_REQUIRED_USE} || ( client server ) diff --git a/x11-wm/xpra/xpra-4.4.6-r2.ebuild b/x11-wm/xpra/xpra-4.4.6-r2.ebuild index b4c34890cee3..d65933d2b255 100644 --- a/x11-wm/xpra/xpra-4.4.6-r2.ebuild +++ b/x11-wm/xpra/xpra-4.4.6-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -8,21 +8,22 @@ if [[ ${PV} = 9999* ]]; then inherit git-r3 else inherit pypi - KEYWORDS="~amd64 ~x86" + KEYWORDS="amd64 x86" fi -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..11} ) DISTUTILS_USE_PEP517=setuptools DISTUTILS_SINGLE_IMPL=yes DISTUTILS_EXT=1 -inherit xdg xdg-utils distutils-r1 multibuild prefix tmpfiles udev +inherit xdg distutils-r1 prefix 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 pinentry pulseaudio +server sound systemd test +trayicon udev vpx webcam webp xdg xinerama" +IUSE+=" +python_single_target_python3_11" REQUIRED_USE="${PYTHON_REQUIRED_USE} || ( client server ) diff --git a/x11-wm/xpra/xpra-6.0.1.ebuild b/x11-wm/xpra/xpra-6.0.1.ebuild new file mode 100644 index 000000000000..bfe892db2a2a --- /dev/null +++ b/x11-wm/xpra/xpra-6.0.1.ebuild @@ -0,0 +1,376 @@ +# Copyright 1999-2024 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" + if [[ ${PV} = 6.9999* ]]; then + EGIT_BRANCH="v6.x" + fi + inherit git-r3 +else + inherit pypi + KEYWORDS="~amd64 ~x86" +fi + +PYTHON_COMPAT=( python3_{10..12} ) +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_SINGLE_IMPL=yes +DISTUTILS_EXT=1 + +inherit cuda xdg distutils-r1 prefix 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="+X avif brotli +client +clipboard crypt csc cuda cups dbus debug doc examples gstreamer +gtk3 html ibus jpeg +lz4 lzo mdns minimal oauth opengl openh264 pinentry pulseaudio qrcode +server sound systemd test +trayicon udev vpx webcam webp x264 xdg xinerama " +IUSE+=" video_cards_nvidia" +RESTRICT="!test? ( test )" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + || ( client gtk3 server ) + cups? ( dbus ) + oauth? ( server ) + opengl? ( client ) + clipboard? ( gtk3 ) + gtk3? ( client ) + test? ( client clipboard crypt dbus gstreamer html server sound xdg xinerama ) +" + +TEST_DEPEND=" + $(python_gen_cond_dep ' + dev-python/netifaces[${PYTHON_USEDEP}] + dev-python/pillow[jpeg?,webp?,${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 + ) + webcam? ( media-video/v4l2loopback ) + xinerama? ( x11-libs/libfakeXinerama ) +" +DEPEND=" + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/pygobject:3[${PYTHON_USEDEP}] + opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] ) + sound? ( dev-python/gst-python:1.0[${PYTHON_USEDEP}] ) + gtk3? ( + dev-python/pygobject:3[cairo] + ) + ') + dev-libs/xxhash + avif? ( media-libs/libavif ) + brotli? ( app-arch/brotli ) + client? ( + x11-libs/gtk+:3[X?,introspection] + ) + jpeg? ( media-libs/libjpeg-turbo ) + mdns? ( dev-libs/mdns ) + openh264? ( media-libs/openh264:= ) + pulseaudio? ( + media-plugins/gst-plugins-pulse:1.0 + media-plugins/gst-plugins-opus + ) + qrcode? ( media-gfx/qrencode ) + sound? ( + media-libs/gstreamer:1.0 + media-libs/gst-plugins-base:1.0 + ) + vpx? ( media-libs/libvpx ) + webp? ( media-libs/libwebp ) + X? ( + x11-apps/xrandr + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libXres + x11-libs/libXtst + x11-libs/libxkbfile + ) + x264? ( media-libs/x264 ) +" +# nvenc? ( amd64? ( media-libs/nv-codec-headers ) ) +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} + $(python_gen_cond_dep ' + dev-python/paramiko[${PYTHON_USEDEP}] + ') + ) +" +BDEPEND=" + $(python_gen_cond_dep ' + dev-python/cython[${PYTHON_USEDEP}] + dev-python/pip[${PYTHON_USEDEP}] + ') + virtual/pkgconfig + doc? ( virtual/pandoc ) +" + +PATCHES=( + "${FILESDIR}/${PN}-9999-pep517.patch" +) + +src_prepare() { + default + + sed \ + -e 's#UNITTESTS_DIR=`dirname $(readlink -f $0)`#: "${UNITTESTS_DIR:=`dirname $(readlink -f $0)`}"#' \ + -e 's#INSTALL_ROOT="$SRC_DIR/dist/python${PYTHON_VERSION}"#: "${INSTALL_ROOT:=$SRC_DIR/dist/python${PYTHON_VERSION}}"#' \ + -e '/setup.py install/d' \ + -i "${S}/tests/unittests/run" || die +} + +python_prepare_all() { + distutils-r1_python_prepare_all + + hprefixify xpra/scripts/config.py + + 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=( + --with-PIC + "$(use_with avif)" + "$(use_with brotli)" + "$(use_with sound audio)" + "$(use_with client)" + "$(use_with clipboard)" + "$(use_with csc csc_cython)" + --without-csc_libyuv + # "$(use_with csc csc_libyuv)" # https://chromium.googlesource.com/libyuv/libyuv + "$(use_with cuda cuda_rebuild)" + "$(use_with cuda cuda_kernels)" + "$(use_with dbus)" + "$(use_with debug)" + "$(use_with doc docs)" + --without-evdi + # "$(use_with evdi)" x11-drivers/evdi::guru + "$(use_with examples example)" + "$(use_with gstreamer)" + "$(use_with gstreamer gstreamer_audio)" + "$(use_with gstreamer gstreamer_video)" + "$(use_with gtk3)" + "$(use_with html http)" + "$(use_with mdns)" + "$(use_with video_cards_nvidia nvidia)" + --without-nvdec + --without-nvenc + --without-nvfbc + # "$(use_with nvenc nvdec)" # NVIDIA Video Codec SDK + # "$(use_with nvenc nvenc)" # NVIDIA Video Codec SDK + # "$(use_with nvenc nvfbc)" # NVIDIA Capture SDK + "$(use_with opengl)" + "$(use_with openh264)" + "$(use_with cups printing)" + --without-pandoc_lua + "$(use_with qrcode qrencode)" + --without-quic + # "$(use_with quic)" # https://github.com/aiortc/aioquic + "$(use_with systemd sd_listen)" + "$(use_with server)" + "$(use_with systemd service)" + "$(use_with server shadow)" + "$(use_with vpx)" + "$(use_with webcam)" + "$(use_with webp)" + "$(use_with X x11)" + "$(use_with X Xdummy)" + + "$(use_with test tests)" + --with-strict + # --with-verbose + # --with-warn + # --with-cythonize_more + + --pkg-config-path="${S}/fs/lib/pkgconfig" + ) + + if use server; then + DISTUTILS_ARGS+=( + "$(use_with jpeg jpeg_encoder)" + "$(use_with vpx vpx_encoder)" + "$(use_with openh264 openh264_encoder)" + "$(use_with cuda nvjpeg_encoder)" + "$(use_with avif avif_encoder)" + "$(use_with webp webp_encoder)" + --without-spng_encoder + # "$(use_with spng spng_encoder)" # https://github.com/randy408/libspng + ) + else + DISTUTILS_ARGS+=( + --without-jpeg_encoder + --without-vpx_encoder + --without-openh264_encoder + --without-nvjpeg_encoder + --without-avif_encoder + --without-webp_encoder + --without-spng_encoder + ) + fi + + if use client || use gtk3; then + DISTUTILS_ARGS+=( + "$(use_with vpx vpx_decoder)" + "$(use_with openh264 openh264_decoder)" + "$(use_with cuda nvjpeg_decoder)" + "$(use_with jpeg jpeg_decoder)" + "$(use_with avif avif_decoder)" + "$(use_with webp webp_decoder)" + --without-spng_decoder + # "$(use_with spng spng_decoder)" # https://github.com/randy408/libspng + ) + else + DISTUTILS_ARGS+=( + --without-jpeg_decoder + --without-vpx_decoder + --without-openh264_decoder + --without-nvjpeg_decoder + --without-avif_decoder + --without-webp_decoder + --without-spng_decoder + ) + fi + + DISTUTILS_ARGS+=( + # Arguments from user + "${MYDISTUTILS_ARGS[@]}" + ) + + export XPRA_SOCKET_DIRS="${EPREFIX}/var/run/xpra" +} + +python_compile() { + if use cuda; then + export NVCC_PREPEND_FLAGS="-ccbin $(cuda_gccdir)/g++" + fi + + PYTHONPATH="${S}" distutils-r1_python_compile +} + +python_test() { + einfo "${BUILD_DIR}/install/$(python_get_sitedir)" + + use cuda && cuda_add_sandbox -w + addwrite /dev/dri/renderD128 + + addpredict /dev/dri/card0 + addpredict /dev/fuse + addpredict /dev/tty0 + addpredict /dev/vga_arbiter + addpredict /proc/mtrr + addpredict /var/run/utmp + + addpredict "$(python_get_sitedir)" + + if [[ -d "/sys/devices/virtual/video4linux" ]]; then + local devices + readarray -t devices <<<"$(find /sys/devices/virtual/video4linux -mindepth 1 -maxdepth 1 -type d -name 'video*' )" + for device in "${devices[@]}"; do + addwrite "/dev/$(basename "${device}" || die )" + done + fi + + xdg_environment_reset + + export XAUTHORITY=${T}/.Xauthority + touch "${XAUTHORITY}" || die + + local -x XPRA_TEST_COVERAGE=0 INSTALL_ROOT="${BUILD_DIR}/install" UNITTESTS_DIR="${S}/tests/unittests" + + tests/unittests/run \ + --skip-fail unit.client.mixins.audioclient_test \ + --skip-fail unit.client.x11_client_test \ + --skip-fail unit.net.net_util_test \ + --skip-fail unit.notifications.common_test \ + --skip-fail unit.server.mixins.shadow_option_test \ + --skip-fail unit.server.mixins.start_option_test \ + --skip-fail unit.server.mixins.startdesktop_option_test \ + --skip-fail unit.server.server_auth_test \ + --skip-fail unit.server.shadow_server_test \ + --skip-fail unit.x11.x11_server_test \ + --skip-slow unit.client.mixins.webcam_test \ + --skip-slow unit.server.server_sockets_test \ + --skip-slow unit.server.source.source_mixins_test \ + || die -n + + # remove test file + rm "${INSTALL_ROOT}/usr/share/xpra/www" -r || die +} + +python_install_all() { + distutils-r1_python_prepare_all + + mv -v "${ED}"/usr/etc "${ED}"/ || die + + sed -e "s#/.*data/etc#/etc#g" \ + -i "${ED}/etc/xpra/conf.d/"* || die + + # Move udev dir to the right place if necessary. + if use udev; then + local dir + 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 +} diff --git a/x11-wm/xpra/xpra-6.9999.ebuild b/x11-wm/xpra/xpra-6.9999.ebuild new file mode 100644 index 000000000000..bfe892db2a2a --- /dev/null +++ b/x11-wm/xpra/xpra-6.9999.ebuild @@ -0,0 +1,376 @@ +# Copyright 1999-2024 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" + if [[ ${PV} = 6.9999* ]]; then + EGIT_BRANCH="v6.x" + fi + inherit git-r3 +else + inherit pypi + KEYWORDS="~amd64 ~x86" +fi + +PYTHON_COMPAT=( python3_{10..12} ) +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_SINGLE_IMPL=yes +DISTUTILS_EXT=1 + +inherit cuda xdg distutils-r1 prefix 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="+X avif brotli +client +clipboard crypt csc cuda cups dbus debug doc examples gstreamer +gtk3 html ibus jpeg +lz4 lzo mdns minimal oauth opengl openh264 pinentry pulseaudio qrcode +server sound systemd test +trayicon udev vpx webcam webp x264 xdg xinerama " +IUSE+=" video_cards_nvidia" +RESTRICT="!test? ( test )" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + || ( client gtk3 server ) + cups? ( dbus ) + oauth? ( server ) + opengl? ( client ) + clipboard? ( gtk3 ) + gtk3? ( client ) + test? ( client clipboard crypt dbus gstreamer html server sound xdg xinerama ) +" + +TEST_DEPEND=" + $(python_gen_cond_dep ' + dev-python/netifaces[${PYTHON_USEDEP}] + dev-python/pillow[jpeg?,webp?,${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 + ) + webcam? ( media-video/v4l2loopback ) + xinerama? ( x11-libs/libfakeXinerama ) +" +DEPEND=" + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/pygobject:3[${PYTHON_USEDEP}] + opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] ) + sound? ( dev-python/gst-python:1.0[${PYTHON_USEDEP}] ) + gtk3? ( + dev-python/pygobject:3[cairo] + ) + ') + dev-libs/xxhash + avif? ( media-libs/libavif ) + brotli? ( app-arch/brotli ) + client? ( + x11-libs/gtk+:3[X?,introspection] + ) + jpeg? ( media-libs/libjpeg-turbo ) + mdns? ( dev-libs/mdns ) + openh264? ( media-libs/openh264:= ) + pulseaudio? ( + media-plugins/gst-plugins-pulse:1.0 + media-plugins/gst-plugins-opus + ) + qrcode? ( media-gfx/qrencode ) + sound? ( + media-libs/gstreamer:1.0 + media-libs/gst-plugins-base:1.0 + ) + vpx? ( media-libs/libvpx ) + webp? ( media-libs/libwebp ) + X? ( + x11-apps/xrandr + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libXres + x11-libs/libXtst + x11-libs/libxkbfile + ) + x264? ( media-libs/x264 ) +" +# nvenc? ( amd64? ( media-libs/nv-codec-headers ) ) +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} + $(python_gen_cond_dep ' + dev-python/paramiko[${PYTHON_USEDEP}] + ') + ) +" +BDEPEND=" + $(python_gen_cond_dep ' + dev-python/cython[${PYTHON_USEDEP}] + dev-python/pip[${PYTHON_USEDEP}] + ') + virtual/pkgconfig + doc? ( virtual/pandoc ) +" + +PATCHES=( + "${FILESDIR}/${PN}-9999-pep517.patch" +) + +src_prepare() { + default + + sed \ + -e 's#UNITTESTS_DIR=`dirname $(readlink -f $0)`#: "${UNITTESTS_DIR:=`dirname $(readlink -f $0)`}"#' \ + -e 's#INSTALL_ROOT="$SRC_DIR/dist/python${PYTHON_VERSION}"#: "${INSTALL_ROOT:=$SRC_DIR/dist/python${PYTHON_VERSION}}"#' \ + -e '/setup.py install/d' \ + -i "${S}/tests/unittests/run" || die +} + +python_prepare_all() { + distutils-r1_python_prepare_all + + hprefixify xpra/scripts/config.py + + 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=( + --with-PIC + "$(use_with avif)" + "$(use_with brotli)" + "$(use_with sound audio)" + "$(use_with client)" + "$(use_with clipboard)" + "$(use_with csc csc_cython)" + --without-csc_libyuv + # "$(use_with csc csc_libyuv)" # https://chromium.googlesource.com/libyuv/libyuv + "$(use_with cuda cuda_rebuild)" + "$(use_with cuda cuda_kernels)" + "$(use_with dbus)" + "$(use_with debug)" + "$(use_with doc docs)" + --without-evdi + # "$(use_with evdi)" x11-drivers/evdi::guru + "$(use_with examples example)" + "$(use_with gstreamer)" + "$(use_with gstreamer gstreamer_audio)" + "$(use_with gstreamer gstreamer_video)" + "$(use_with gtk3)" + "$(use_with html http)" + "$(use_with mdns)" + "$(use_with video_cards_nvidia nvidia)" + --without-nvdec + --without-nvenc + --without-nvfbc + # "$(use_with nvenc nvdec)" # NVIDIA Video Codec SDK + # "$(use_with nvenc nvenc)" # NVIDIA Video Codec SDK + # "$(use_with nvenc nvfbc)" # NVIDIA Capture SDK + "$(use_with opengl)" + "$(use_with openh264)" + "$(use_with cups printing)" + --without-pandoc_lua + "$(use_with qrcode qrencode)" + --without-quic + # "$(use_with quic)" # https://github.com/aiortc/aioquic + "$(use_with systemd sd_listen)" + "$(use_with server)" + "$(use_with systemd service)" + "$(use_with server shadow)" + "$(use_with vpx)" + "$(use_with webcam)" + "$(use_with webp)" + "$(use_with X x11)" + "$(use_with X Xdummy)" + + "$(use_with test tests)" + --with-strict + # --with-verbose + # --with-warn + # --with-cythonize_more + + --pkg-config-path="${S}/fs/lib/pkgconfig" + ) + + if use server; then + DISTUTILS_ARGS+=( + "$(use_with jpeg jpeg_encoder)" + "$(use_with vpx vpx_encoder)" + "$(use_with openh264 openh264_encoder)" + "$(use_with cuda nvjpeg_encoder)" + "$(use_with avif avif_encoder)" + "$(use_with webp webp_encoder)" + --without-spng_encoder + # "$(use_with spng spng_encoder)" # https://github.com/randy408/libspng + ) + else + DISTUTILS_ARGS+=( + --without-jpeg_encoder + --without-vpx_encoder + --without-openh264_encoder + --without-nvjpeg_encoder + --without-avif_encoder + --without-webp_encoder + --without-spng_encoder + ) + fi + + if use client || use gtk3; then + DISTUTILS_ARGS+=( + "$(use_with vpx vpx_decoder)" + "$(use_with openh264 openh264_decoder)" + "$(use_with cuda nvjpeg_decoder)" + "$(use_with jpeg jpeg_decoder)" + "$(use_with avif avif_decoder)" + "$(use_with webp webp_decoder)" + --without-spng_decoder + # "$(use_with spng spng_decoder)" # https://github.com/randy408/libspng + ) + else + DISTUTILS_ARGS+=( + --without-jpeg_decoder + --without-vpx_decoder + --without-openh264_decoder + --without-nvjpeg_decoder + --without-avif_decoder + --without-webp_decoder + --without-spng_decoder + ) + fi + + DISTUTILS_ARGS+=( + # Arguments from user + "${MYDISTUTILS_ARGS[@]}" + ) + + export XPRA_SOCKET_DIRS="${EPREFIX}/var/run/xpra" +} + +python_compile() { + if use cuda; then + export NVCC_PREPEND_FLAGS="-ccbin $(cuda_gccdir)/g++" + fi + + PYTHONPATH="${S}" distutils-r1_python_compile +} + +python_test() { + einfo "${BUILD_DIR}/install/$(python_get_sitedir)" + + use cuda && cuda_add_sandbox -w + addwrite /dev/dri/renderD128 + + addpredict /dev/dri/card0 + addpredict /dev/fuse + addpredict /dev/tty0 + addpredict /dev/vga_arbiter + addpredict /proc/mtrr + addpredict /var/run/utmp + + addpredict "$(python_get_sitedir)" + + if [[ -d "/sys/devices/virtual/video4linux" ]]; then + local devices + readarray -t devices <<<"$(find /sys/devices/virtual/video4linux -mindepth 1 -maxdepth 1 -type d -name 'video*' )" + for device in "${devices[@]}"; do + addwrite "/dev/$(basename "${device}" || die )" + done + fi + + xdg_environment_reset + + export XAUTHORITY=${T}/.Xauthority + touch "${XAUTHORITY}" || die + + local -x XPRA_TEST_COVERAGE=0 INSTALL_ROOT="${BUILD_DIR}/install" UNITTESTS_DIR="${S}/tests/unittests" + + tests/unittests/run \ + --skip-fail unit.client.mixins.audioclient_test \ + --skip-fail unit.client.x11_client_test \ + --skip-fail unit.net.net_util_test \ + --skip-fail unit.notifications.common_test \ + --skip-fail unit.server.mixins.shadow_option_test \ + --skip-fail unit.server.mixins.start_option_test \ + --skip-fail unit.server.mixins.startdesktop_option_test \ + --skip-fail unit.server.server_auth_test \ + --skip-fail unit.server.shadow_server_test \ + --skip-fail unit.x11.x11_server_test \ + --skip-slow unit.client.mixins.webcam_test \ + --skip-slow unit.server.server_sockets_test \ + --skip-slow unit.server.source.source_mixins_test \ + || die -n + + # remove test file + rm "${INSTALL_ROOT}/usr/share/xpra/www" -r || die +} + +python_install_all() { + distutils-r1_python_prepare_all + + mv -v "${ED}"/usr/etc "${ED}"/ || die + + sed -e "s#/.*data/etc#/etc#g" \ + -i "${ED}/etc/xpra/conf.d/"* || die + + # Move udev dir to the right place if necessary. + if use udev; then + local dir + 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 +} diff --git a/x11-wm/xpra/xpra-9999.ebuild b/x11-wm/xpra/xpra-9999.ebuild index b2531fd6fa85..bfe892db2a2a 100644 --- a/x11-wm/xpra/xpra-9999.ebuild +++ b/x11-wm/xpra/xpra-9999.ebuild @@ -1,35 +1,42 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -if [[ ${PV} = 9999* ]]; then +if [[ ${PV} = *9999* ]]; then EGIT_REPO_URI="https://github.com/Xpra-org/xpra.git" + if [[ ${PV} = 6.9999* ]]; then + EGIT_BRANCH="v6.x" + fi inherit git-r3 else inherit pypi KEYWORDS="~amd64 ~x86" fi -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..12} ) DISTUTILS_USE_PEP517=setuptools DISTUTILS_SINGLE_IMPL=yes DISTUTILS_EXT=1 -inherit xdg xdg-utils distutils-r1 multibuild prefix tmpfiles udev +inherit cuda xdg distutils-r1 prefix 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 pinentry pulseaudio +server sound systemd test +trayicon udev vpx webcam webp xdg xinerama" +IUSE="+X avif brotli +client +clipboard crypt csc cuda cups dbus debug doc examples gstreamer +gtk3 html ibus jpeg +lz4 lzo mdns minimal oauth opengl openh264 pinentry pulseaudio qrcode +server sound systemd test +trayicon udev vpx webcam webp x264 xdg xinerama " +IUSE+=" video_cards_nvidia" +RESTRICT="!test? ( test )" REQUIRED_USE="${PYTHON_REQUIRED_USE} - || ( client server ) + || ( client gtk3 server ) cups? ( dbus ) oauth? ( server ) opengl? ( client ) - test? ( client clipboard crypt dbus html server sound xdg xinerama ) + clipboard? ( gtk3 ) + gtk3? ( client ) + test? ( client clipboard crypt dbus gstreamer html server sound xdg xinerama ) " TEST_DEPEND=" @@ -45,39 +52,52 @@ TEST_DEPEND=" x11-base/xorg-server[-minimal,xvfb] x11-drivers/xf86-input-void ) + webcam? ( media-video/v4l2loopback ) xinerama? ( x11-libs/libfakeXinerama ) " DEPEND=" ${PYTHON_DEPS} $(python_gen_cond_dep ' - dev-python/pygobject:3[${PYTHON_USEDEP},cairo] + dev-python/pygobject:3[${PYTHON_USEDEP}] opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] ) sound? ( dev-python/gst-python:1.0[${PYTHON_USEDEP}] ) + gtk3? ( + dev-python/pygobject:3[cairo] + ) ') - 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 + dev-libs/xxhash + avif? ( media-libs/libavif ) brotli? ( app-arch/brotli ) - csc? ( >=media-video/ffmpeg-1.2.2:0= ) - ffmpeg? ( >=media-video/ffmpeg-3.2.2:0=[x264] ) + client? ( + x11-libs/gtk+:3[X?,introspection] + ) jpeg? ( media-libs/libjpeg-turbo ) + mdns? ( dev-libs/mdns ) + openh264? ( media-libs/openh264:= ) pulseaudio? ( - media-libs/libpulse media-plugins/gst-plugins-pulse:1.0 + media-plugins/gst-plugins-opus ) + qrcode? ( media-gfx/qrencode ) sound? ( media-libs/gstreamer:1.0 media-libs/gst-plugins-base:1.0 ) - vpx? ( media-libs/libvpx media-video/ffmpeg ) + vpx? ( media-libs/libvpx ) webp? ( media-libs/libwebp ) + X? ( + x11-apps/xrandr + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libXres + x11-libs/libXtst + x11-libs/libxkbfile + ) + x264? ( media-libs/x264 ) " +# nvenc? ( amd64? ( media-libs/nv-codec-headers ) ) RDEPEND=" ${DEPEND} ${TEST_DEPEND} @@ -104,24 +124,36 @@ RDEPEND=" udev? ( virtual/udev ) " DEPEND+=" - test? ( ${TEST_DEPEND} ) + test? ( + ${TEST_DEPEND} + $(python_gen_cond_dep ' + dev-python/paramiko[${PYTHON_USEDEP}] + ') + ) " BDEPEND=" $(python_gen_cond_dep ' - >=dev-python/cython-0.16[${PYTHON_USEDEP}] + dev-python/cython[${PYTHON_USEDEP}] + dev-python/pip[${PYTHON_USEDEP}] ') virtual/pkgconfig doc? ( virtual/pandoc ) " -# Broken by PEP517 migration and some tests failed for a while before that for -# unknown reasons. -RESTRICT="test" - PATCHES=( - "${FILESDIR}"/${PN}-9999-xdummy.patch + "${FILESDIR}/${PN}-9999-pep517.patch" ) +src_prepare() { + default + + sed \ + -e 's#UNITTESTS_DIR=`dirname $(readlink -f $0)`#: "${UNITTESTS_DIR:=`dirname $(readlink -f $0)`}"#' \ + -e 's#INSTALL_ROOT="$SRC_DIR/dist/python${PYTHON_VERSION}"#: "${INSTALL_ROOT:=$SRC_DIR/dist/python${PYTHON_VERSION}}"#' \ + -e '/setup.py install/d' \ + -i "${S}/tests/unittests/run" || die +} + python_prepare_all() { distutils-r1_python_prepare_all @@ -142,70 +174,186 @@ python_configure_all() { -i setup.py || die DISTUTILS_ARGS=( - --without-PIC - --without-Xdummy - $(use_with sound audio) - $(use_with client) - $(use_with clipboard) - $(use_with csc csc_swscale) + --with-PIC + "$(use_with avif)" + "$(use_with brotli)" + "$(use_with sound audio)" + "$(use_with client)" + "$(use_with clipboard)" + "$(use_with csc csc_cython)" --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) - --without-strict - $(use_with vpx) - --with-warn - $(use_with webcam) - $(use_with webp) - --with-x11 + # "$(use_with csc csc_libyuv)" # https://chromium.googlesource.com/libyuv/libyuv + "$(use_with cuda cuda_rebuild)" + "$(use_with cuda cuda_kernels)" + "$(use_with dbus)" + "$(use_with debug)" + "$(use_with doc docs)" + --without-evdi + # "$(use_with evdi)" x11-drivers/evdi::guru + "$(use_with examples example)" + "$(use_with gstreamer)" + "$(use_with gstreamer gstreamer_audio)" + "$(use_with gstreamer gstreamer_video)" + "$(use_with gtk3)" + "$(use_with html http)" + "$(use_with mdns)" + "$(use_with video_cards_nvidia nvidia)" + --without-nvdec + --without-nvenc + --without-nvfbc + # "$(use_with nvenc nvdec)" # NVIDIA Video Codec SDK + # "$(use_with nvenc nvenc)" # NVIDIA Video Codec SDK + # "$(use_with nvenc nvfbc)" # NVIDIA Capture SDK + "$(use_with opengl)" + "$(use_with openh264)" + "$(use_with cups printing)" + --without-pandoc_lua + "$(use_with qrcode qrencode)" + --without-quic + # "$(use_with quic)" # https://github.com/aiortc/aioquic + "$(use_with systemd sd_listen)" + "$(use_with server)" + "$(use_with systemd service)" + "$(use_with server shadow)" + "$(use_with vpx)" + "$(use_with webcam)" + "$(use_with webp)" + "$(use_with X x11)" + "$(use_with X Xdummy)" + + "$(use_with test tests)" + --with-strict + # --with-verbose + # --with-warn + # --with-cythonize_more + + --pkg-config-path="${S}/fs/lib/pkgconfig" ) - export XPRA_SOCKET_DIRS="${EPREFIX}/run/xpra" + if use server; then + DISTUTILS_ARGS+=( + "$(use_with jpeg jpeg_encoder)" + "$(use_with vpx vpx_encoder)" + "$(use_with openh264 openh264_encoder)" + "$(use_with cuda nvjpeg_encoder)" + "$(use_with avif avif_encoder)" + "$(use_with webp webp_encoder)" + --without-spng_encoder + # "$(use_with spng spng_encoder)" # https://github.com/randy408/libspng + ) + else + DISTUTILS_ARGS+=( + --without-jpeg_encoder + --without-vpx_encoder + --without-openh264_encoder + --without-nvjpeg_encoder + --without-avif_encoder + --without-webp_encoder + --without-spng_encoder + ) + fi + + if use client || use gtk3; then + DISTUTILS_ARGS+=( + "$(use_with vpx vpx_decoder)" + "$(use_with openh264 openh264_decoder)" + "$(use_with cuda nvjpeg_decoder)" + "$(use_with jpeg jpeg_decoder)" + "$(use_with avif avif_decoder)" + "$(use_with webp webp_decoder)" + --without-spng_decoder + # "$(use_with spng spng_decoder)" # https://github.com/randy408/libspng + ) + else + DISTUTILS_ARGS+=( + --without-jpeg_decoder + --without-vpx_decoder + --without-openh264_decoder + --without-nvjpeg_decoder + --without-avif_decoder + --without-webp_decoder + --without-spng_decoder + ) + fi + + DISTUTILS_ARGS+=( + # Arguments from user + "${MYDISTUTILS_ARGS[@]}" + ) + + export XPRA_SOCKET_DIRS="${EPREFIX}/var/run/xpra" +} + +python_compile() { + if use cuda; then + export NVCC_PREPEND_FLAGS="-ccbin $(cuda_gccdir)/g++" + fi + + PYTHONPATH="${S}" distutils-r1_python_compile } python_test() { - export XAUTHORITY=${HOME}/.Xauthority - touch "${XAUTHORITY}" || die + einfo "${BUILD_DIR}/install/$(python_get_sitedir)" + + use cuda && cuda_add_sandbox -w + addwrite /dev/dri/renderD128 + + addpredict /dev/dri/card0 + addpredict /dev/fuse + addpredict /dev/tty0 + addpredict /dev/vga_arbiter + addpredict /proc/mtrr + addpredict /var/run/utmp + + addpredict "$(python_get_sitedir)" + + if [[ -d "/sys/devices/virtual/video4linux" ]]; then + local devices + readarray -t devices <<<"$(find /sys/devices/virtual/video4linux -mindepth 1 -maxdepth 1 -type d -name 'video*' )" + for device in "${devices[@]}"; do + addwrite "/dev/$(basename "${device}" || die )" + done + fi - 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 + export XAUTHORITY=${T}/.Xauthority + touch "${XAUTHORITY}" || die + + local -x XPRA_TEST_COVERAGE=0 INSTALL_ROOT="${BUILD_DIR}/install" UNITTESTS_DIR="${S}/tests/unittests" + + tests/unittests/run \ + --skip-fail unit.client.mixins.audioclient_test \ + --skip-fail unit.client.x11_client_test \ + --skip-fail unit.net.net_util_test \ + --skip-fail unit.notifications.common_test \ + --skip-fail unit.server.mixins.shadow_option_test \ + --skip-fail unit.server.mixins.start_option_test \ + --skip-fail unit.server.mixins.startdesktop_option_test \ + --skip-fail unit.server.server_auth_test \ + --skip-fail unit.server.shadow_server_test \ + --skip-fail unit.x11.x11_server_test \ + --skip-slow unit.client.mixins.webcam_test \ + --skip-slow unit.server.server_sockets_test \ + --skip-slow unit.server.source.source_mixins_test \ + || die -n + + # remove test file + rm "${INSTALL_ROOT}/usr/share/xpra/www" -r || die } python_install_all() { distutils-r1_python_prepare_all - # Switching to PEP517 gives /usr/etc. Previously, setup.py hardcodes - # if root_prefix.endswith("/usr"): - # root_prefix = root_prefix[:-4] - # But now setuptools uses data/* to represent out-of-sitedir files. - # The upstream hack no longer works. We are on our own. - mv -v "${ED}"/usr/etc "${ED}"/ || die + sed -e "s#/.*data/etc#/etc#g" \ + -i "${ED}/etc/xpra/conf.d/"* || die + # Move udev dir to the right place if necessary. if use udev; then - local dir=$(get_udevdir) + local dir + dir=$(get_udevdir) if [[ ! ${ED}/usr/lib/udev -ef ${ED}${dir} ]]; then dodir "${dir%/*}" mv -vnT "${ED}"/usr/lib/udev "${ED}${dir}" || die |