From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 8A75D1382C5 for ; Tue, 19 Jan 2021 22:38:55 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 55E0EE0830; Tue, 19 Jan 2021 22:38:54 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 2C177E0830 for ; Tue, 19 Jan 2021 22:38:54 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 9C51A340FCD for ; Tue, 19 Jan 2021 22:38:52 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 09860487 for ; Tue, 19 Jan 2021 22:38:51 +0000 (UTC) From: "James Le Cuirot" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "James Le Cuirot" Message-ID: <1611095904.b0de3418e9b17db2f09fc2acdb60668f65c013fd.chewi@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: x11-wm/xpra/files/, x11-wm/xpra/ X-VCS-Repository: repo/gentoo X-VCS-Files: x11-wm/xpra/Manifest x11-wm/xpra/files/xpra-4.0.6-r28363.patch x11-wm/xpra/xpra-4.0.6_p28363.ebuild X-VCS-Directories: x11-wm/xpra/ x11-wm/xpra/files/ X-VCS-Committer: chewi X-VCS-Committer-Name: James Le Cuirot X-VCS-Revision: b0de3418e9b17db2f09fc2acdb60668f65c013fd X-VCS-Branch: master Date: Tue, 19 Jan 2021 22:38:51 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 0c1f2537-8ac0-49d8-a340-f101a98d0276 X-Archives-Hash: f26f1554b6e58444ab97be05aa9480fe commit: b0de3418e9b17db2f09fc2acdb60668f65c013fd Author: James Le Cuirot gentoo org> AuthorDate: Tue Jan 19 22:25:23 2021 +0000 Commit: James Le Cuirot gentoo org> CommitDate: Tue Jan 19 22:38:24 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b0de3418 x11-wm/xpra: Version bump to 4.0.6_p28363 4.0.6 has some nice fixes but also a bad bug. This revision has a few subsequent fixes. Package-Manager: Portage-3.0.14, Repoman-3.0.1 Signed-off-by: James Le Cuirot gentoo.org> x11-wm/xpra/Manifest | 1 + x11-wm/xpra/files/xpra-4.0.6-r28363.patch | 238 ++++++++++++++++++++++++++++++ x11-wm/xpra/xpra-4.0.6_p28363.ebuild | 148 +++++++++++++++++++ 3 files changed, 387 insertions(+) diff --git a/x11-wm/xpra/Manifest b/x11-wm/xpra/Manifest index 8a4b5fa5d88..836f937897f 100644 --- a/x11-wm/xpra/Manifest +++ b/x11-wm/xpra/Manifest @@ -2,3 +2,4 @@ DIST xpra-3.0.2.tar.xz 2749196 BLAKE2B 3c8745657a12637704fb88ac7b867ab387ef7ed22 DIST xpra-3.0.5.tar.xz 2752016 BLAKE2B a36d6a4ebb0b14665014da92d510c0d5f978c96db653709ddc09a1015426d6ac6f71f9a221db68ee1114c95eeaca6600f9e49102ce9f936d9b0ee298ac432647 SHA512 3dbc122ebc8c4aa67154acfe92668ac364d8469022b03e28946d763e4d396f8c707690b2a4dbf07b55545259a53b46c9dd94e6e40131289ccc3dce6a88107681 DIST xpra-4.0.4.tar.xz 2792512 BLAKE2B e16c47e82cf9f8712521c8f9c436b7bb819d9469fc0135ade1f2c9fc6f2a8a0fecf417caae87a1eca9c4b6daec1a82add5d6547208caee1a1d681ebc7b3d3d3b SHA512 91a90cdab775ec2501ef1601188b97ca4aa741e541f8d941add8d509767790a144b67f094177dda7539eff305710f2c834b90a93e9441437dac615677963094c DIST xpra-4.0.5.tar.xz 2795828 BLAKE2B fed6514d75dbb08f386325e30e375fd2077db1dad91602e575e3955a622a52ade2fc8e0c6c823d8a495684afb3a2f55f27e28abdf8734d0eca25275a3d358193 SHA512 d2aa2b70b6ec702bca5b0c2b06378107d45c4cad79f83ee2a1ed27fd5f66474e2d8e1d28d5111e60417ed089f91bab0b1566b0c9b3dcf6f0cb5e204ff5c42c92 +DIST xpra-4.0.6.tar.xz 2797752 BLAKE2B 3f2d4108fec1f1b5c0cd38a26f1a2c41af253fd234427e8e54104ff3742b9f7ae3e1863db837addd76acc6856b6f3cfcbde97edc2bc75314b215d4ca46a816f8 SHA512 e3dc66040898ed40ef12b8cdb89e5f42c2f36edc071afb435334389e727f376ddc116dbee47018468bff24f2cdd7be35750b58bc108ba73c5558bd9eccbd04ea diff --git a/x11-wm/xpra/files/xpra-4.0.6-r28363.patch b/x11-wm/xpra/files/xpra-4.0.6-r28363.patch new file mode 100644 index 00000000000..5187b700c0d --- /dev/null +++ b/x11-wm/xpra/files/xpra-4.0.6-r28363.patch @@ -0,0 +1,238 @@ +Index: selinux/xpra_socketactivation/xpra_socketactivation.te +=================================================================== +--- a/selinux/xpra_socketactivation/xpra_socketactivation.te (revision 28285) ++++ b/selinux/xpra_socketactivation/xpra_socketactivation.te (revision 28363) +@@ -27,6 +27,7 @@ + type unconfined_t; + type bin_t; + type avahi_t; ++ type config_home_t; + + attribute can_read_shadow_passwords; + } +@@ -55,6 +56,9 @@ + allow xpra_t xpra_conf_t:dir { getattr open read search }; + files_search_etc(xpra_t) + ++allow xpra_t config_home_t:dir { getattr search }; ++allow xpra_t config_home_t:file { getattr ioctl open read }; ++ + type xpra_socket_t; + files_type(xpra_socket_t) + +Index: setup.py +=================================================================== +--- a/setup.py (revision 28285) ++++ b/setup.py (revision 28363) +@@ -1533,8 +1533,9 @@ + for k,v in subs.items(): + data = data.replace(k, v) + with open(dst_file, "wb") as f: +- return f.write(data) ++ f.write(data) + if chmod: ++ print("chmod(%s, %s)" % (dst_file, oct(chmod))) + os.chmod(dst_file, chmod) + + if printing_ENABLED and POSIX: +Index: unittests/unit/net/crypto_test.py +=================================================================== +--- a/unittests/unit/net/crypto_test.py (revision 28285) ++++ b/unittests/unit/net/crypto_test.py (revision 28363) +@@ -88,7 +88,7 @@ + start = monotonic_time() + self.do_test_backend(data, enc_iterations, dec_iterations) + end = monotonic_time() +- elapsed = end-start ++ elapsed = max(0.0001, end-start) + speed = (asize*16) * (enc_iterations + dec_iterations) / elapsed + iter_time = elapsed*1000/(enc_iterations + dec_iterations) + print("%10iKB: %5.1fms: %16iMB/s" % (asize*16//1024, iter_time, speed//1024//1024)) +Index: win32/MINGW_BUILD.sh +=================================================================== +--- a/win32/MINGW_BUILD.sh (revision 28285) ++++ b/win32/MINGW_BUILD.sh (revision 28363) +@@ -286,6 +286,8 @@ + #why is it shipping those files?? + find lib/ -name "*dll.a" -exec rm {} \; + #only keep the actual loaders, not all the other crap cx_Freeze put there: ++#but keep librsvg ++mv lib/gdk-pixbuf-2.0/2.10.0/loaders/librsvg* ./ + mkdir lib/gdk-pixbuf-2.0/2.10.0/loaders.tmp + mv lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-*.dll lib/gdk-pixbuf-2.0/2.10.0/loaders.tmp/ + rm -fr lib/gdk-pixbuf-2.0/2.10.0/loaders +@@ -326,6 +328,9 @@ + #and keep pdfium: + mv lib/*pdfium*.dll ./ + pushd lib > /dev/null ++#cx_Freeze forgets these two!? ++cp $MINGW_PREFIX/bin/libatk-*dll ./ ++cp $MINGW_PREFIX/bin/libgtk-*dll ./ + #remove all the pointless duplication: + for x in `ls *dll`; do + find ./ -mindepth 2 -name "${x}" -exec rm {} \; +Index: xpra/client/gtk_base/gtk_client_window_base.py +=================================================================== +--- a/xpra/client/gtk_base/gtk_client_window_base.py (revision 28285) ++++ b/xpra/client/gtk_base/gtk_client_window_base.py (revision 28363) +@@ -1806,10 +1806,16 @@ + + def _set_backing_size(self, ww, wh): + b = self._backing ++ bw = self._client.cx(ww) ++ bh = self._client.cy(wh) ++ if max(ww, wh)>=32000 or min(ww, wh)<0: ++ raise Exception("invalid window size %ix%i" % (ww, wh)) ++ if max(bw, bh)>=32000: ++ raise Exception("invalid window backing size %ix%i" % (bw, bh)) + if b: +- b.init(ww, wh, self._client.cx(ww), self._client.cy(wh)) ++ b.init(ww, wh, bw, bh) + else: +- self.new_backing(self._client.cx(ww), self._client.cy(wh)) ++ self.new_backing(bw, bh) + + def resize(self, w, h, resize_counter=0): + ww, wh = self.get_size() +Index: xpra/net/file_transfer.py +=================================================================== +--- a/xpra/net/file_transfer.py (revision 28285) ++++ b/xpra/net/file_transfer.py (revision 28363) +@@ -580,6 +580,10 @@ + + def _process_open_url(self, packet): + url, send_id = packet[1:3] ++ try: ++ url = strtobytes(url).decode("utf8") ++ except UnicodeDecodeError: ++ url = bytestostr(url) + if not self.open_url: + filelog.warn("Warning: received a request to open URL '%s'", url) + filelog.warn(" but opening of URLs is disabled") +@@ -670,12 +674,12 @@ + filelog("process send-data-request: send_id=%s, url=%s, printit=%s, openit=%s", s(send_id), url, printit, openit) + def cb_answer(accept): + filelog("accept%s=%s", (url, printit, openit), accept) ++ self.send("send-data-response", send_id, accept) + #filenames and url are always sent encoded as utf8: + try: + url = strtobytes(url).decode("utf8") + except: + url = bytestostr(url) +- self.send("send-data-response", send_id, accept) + if dtype==b"file": + if not self.file_transfer: + cb_answer(False) +Index: xpra/net/socket_util.py +=================================================================== +--- a/xpra/net/socket_util.py (revision 28285) ++++ b/xpra/net/socket_util.py (revision 28363) +@@ -622,7 +622,7 @@ + log.info(" %s does not exist", dirname) + #only show extra information if the socket permissions + #would have been accessible by the group: +- if POSIX and (sperms & 0o40): ++ elif POSIX and (sperms & 0o40): + uid = getuid() + username = get_username_for_uid(uid) + groups = get_groups(username) +Index: xpra/platform/xposix/paths.py +=================================================================== +--- a/xpra/platform/xposix/paths.py (revision 28285) ++++ b/xpra/platform/xposix/paths.py (revision 28363) +@@ -102,12 +102,12 @@ + + def do_get_user_conf_dirs(uid): + #per-user configuration location: +- #(but never use /root/.xpra) ++ #(but never use /root/.xpra or /root/.config/xpra) + if uid is None: + uid = os.getuid() + dirs = [] +- dirs += [os.path.join(os.environ.get("XDG_CONFIG_HOME", "~/.config"), "xpra")] + if uid>0: ++ dirs += [os.path.join(os.environ.get("XDG_CONFIG_HOME", "~/.config"), "xpra")] + dirs.append("~/.xpra") + return dirs + +Index: xpra/platform/xposix/sd_listen.pyx +=================================================================== +--- a/xpra/platform/xposix/sd_listen.pyx (revision 28285) ++++ b/xpra/platform/xposix/sd_listen.pyx (revision 28363) +@@ -52,7 +52,7 @@ + return sockets + + def get_sd_socket_type(fd): +- from xpra.net.common import TCP_SOCKTYPES ++ from xpra.net.bytestreams import TCP_SOCKTYPES + socktype = os.environ.get("XPRA_SD%i_SOCKET_TYPE" % fd) + if not socktype: + socktype = os.environ.get("XPRA_SD_SOCKET_TYPE", "tcp") +Index: xpra/server/mixins/audio_server.py +=================================================================== +--- a/xpra/server/mixins/audio_server.py (revision 28285) ++++ b/xpra/server/mixins/audio_server.py (revision 28363) +@@ -121,7 +121,7 @@ + from xpra.platform.xposix.paths import _get_xpra_runtime_dir, get_runtime_dir + rd = osexpand(get_runtime_dir()) + if not os.path.exists(rd) or not os.path.isdir(rd): +- log.warn("Warning: the runtime directory '%s' does not exist,") ++ log.warn("Warning: the runtime directory '%s' does not exist,", rd) + log.warn(" cannot start a private pulseaudio server") + else: + xpra_rd = _get_xpra_runtime_dir() +Index: xpra/server/window/motion.pyx +=================================================================== +--- a/xpra/server/window/motion.pyx (revision 28285) ++++ b/xpra/server/window/motion.pyx (revision 28363) +@@ -79,7 +79,7 @@ + for i,v in enumerate(arr): + self.a2[i] = abs(v) + +- def update(self, pixels, int16_t x, int16_t y, uint16_t width, uint16_t height, uint16_t rowstride, uint8_t bpp=4): ++ def update(self, pixels, int16_t x, int16_t y, uint16_t width, uint16_t height, uint32_t rowstride, uint8_t bpp=4): + """ + Add a new image to compare with, + checksum its rows into a2, +Index: xpra/server/window/window_video_source.py +=================================================================== +--- a/xpra/server/window/window_video_source.py (revision 28285) ++++ b/xpra/server/window/window_video_source.py (revision 28363) +@@ -1785,6 +1785,13 @@ + scrolllog("no scrolling: detection has already been used on this image") + #we've already checked + return False ++ x = image.get_target_x() ++ y = image.get_target_y() ++ w = image.get_width() ++ h = image.get_height() ++ if w>=32000 or h>=32000: ++ scrolllog("no scrolling: the image is too large, %ix%i", w, h) ++ return False + #don't download the pixels if we have a GPU buffer, + #since that means we're likely to be able to compress on the GPU too with NVENC: + if not image.has_pixels(): +@@ -1792,10 +1799,6 @@ + if self.content_type=="video" or not self.non_video_encodings: + scrolllog("no scrolling: content is video") + return False +- x = image.get_target_x() +- y = image.get_target_y() +- w = image.get_width() +- h = image.get_height() + if w