Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package galene for openSUSE:Factory checked in at 2022-07-26 19:43:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/galene (Old) and /work/SRC/openSUSE:Factory/.galene.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "galene" Tue Jul 26 19:43:53 2022 rev:20 rq:990861 version:0.5.5 Changes: -------- --- /work/SRC/openSUSE:Factory/galene/galene.changes 2022-05-15 19:00:33.054419356 +0200 +++ /work/SRC/openSUSE:Factory/.galene.new.1533/galene.changes 2022-07-26 19:44:18.704849617 +0200 @@ -1,0 +2,18 @@ +Sat Jul 23 19:58:33 UTC 2022 - mich...@stroeder.com + +- Update to version 0.5.5: + * Fixed a longstanding bug with time conversion that would occasionally + cause us to miscalculate rates and send incorrect sender reports. + Thanks to lamhai1401. + * Updated srtp to a version that includes Adrian Cable's optimisations. + This should yield a 10% to 20% improvement for AES-CTR (but modern + browsers use GCM). + * Reworded the Safari warning to be more frightening, since + screensharing on Safari tends to get stuck. + +------------------------------------------------------------------- +Tue Jul 12 17:33:48 UTC 2022 - Michael Str??der <mich...@stroeder.com> + +- explicitly require go >= 1.16 + +------------------------------------------------------------------- Old: ---- galene-0.5.4.tar.gz New: ---- galene-0.5.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ galene.spec ++++++ --- /var/tmp/diff_new_pack.CpZ5z4/_old 2022-07-26 19:44:19.316755062 +0200 +++ /var/tmp/diff_new_pack.CpZ5z4/_new 2022-07-26 19:44:19.324753826 +0200 @@ -25,7 +25,7 @@ %bcond_without apparmor Name: galene -Version: 0.5.4 +Version: 0.5.5 Release: 0 Summary: Gal??ne videoconferencing server License: MIT @@ -40,7 +40,7 @@ Patch1: galene-html-sendselect-default.patch BuildRequires: fdupes BuildRequires: filesystem -BuildRequires: go >= 1.14 +BuildRequires: go >= 1.16 BuildRequires: systemd-rpm-macros Requires: fdupes Requires: filesystem ++++++ _service ++++++ --- /var/tmp/diff_new_pack.CpZ5z4/_old 2022-07-26 19:44:19.360748264 +0200 +++ /var/tmp/diff_new_pack.CpZ5z4/_new 2022-07-26 19:44:19.364747646 +0200 @@ -3,8 +3,8 @@ <param name="url">https://github.com/jech/galene.git</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">galene-0.5.4</param> - <param name="version">0.5.4</param> + <param name="revision">galene-0.5.5</param> + <param name="version">0.5.5</param> <param name="changesgenerate">enable</param> <!--param name="versionrewrite-pattern">galene-(\d+)</param> <param name="versionrewrite-replacement">\1</param--> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.CpZ5z4/_old 2022-07-26 19:44:19.384744556 +0200 +++ /var/tmp/diff_new_pack.CpZ5z4/_new 2022-07-26 19:44:19.388743938 +0200 @@ -3,6 +3,6 @@ <param name="url">git://github.com/jech/galene.git</param> <param name="changesrevision">ba75bfeb3acd33f92084fa0eb88be9aee824badf</param></service><service name="tar_scm"> <param name="url">https://github.com/jech/galene.git</param> - <param name="changesrevision">4c8fdb8ea83057c1457b3681d667e1aec992550e</param></service></servicedata> + <param name="changesrevision">7d4133d1c378637d86d851a6e5ee540efaf02697</param></service></servicedata> (No newline at EOF) ++++++ galene-0.5.4.tar.gz -> galene-0.5.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.5.4/CHANGES new/galene-0.5.5/CHANGES --- old/galene-0.5.4/CHANGES 2022-05-05 13:43:09.000000000 +0200 +++ new/galene-0.5.5/CHANGES 2022-07-23 20:42:20.000000000 +0200 @@ -1,3 +1,14 @@ +23 July 2022: Galene 0.5.5 + + * Fixed a longstanding bug with time conversion that would occasionally + cause us to miscalculate rates and send incorrect sender reports. + Thanks to lamhai1401. + * Updated srtp to a version that includes Adrian Cable's optimisations. + This should yield a 10% to 20% improvement for AES-CTR (but modern + browsers use GCM). + * Reworded the Safari warning to be more frightening, since + screensharing on Safari tends to get stuck. + 5 May 2022: Galene 0.5.4 * Fix username check when a token is present. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.5.4/go.mod new/galene-0.5.5/go.mod --- old/galene-0.5.4/go.mod 2022-05-05 13:43:09.000000000 +0200 +++ new/galene-0.5.5/go.mod 2022-07-23 20:42:20.000000000 +0200 @@ -1,22 +1,21 @@ module github.com/jech/galene -go 1.15 +go 1.16 require ( github.com/at-wat/ebml-go v0.16.0 - github.com/golang-jwt/jwt/v4 v4.4.1 + github.com/golang-jwt/jwt/v4 v4.4.2 github.com/gorilla/websocket v1.5.0 github.com/jech/cert v0.0.0-20210819231831-aca735647728 github.com/jech/samplebuilder v0.0.0-20220417174833-7353a593563a - github.com/pion/ice/v2 v2.2.6 - github.com/pion/rtcp v1.2.9 + github.com/pion/ice/v2 v2.2.7 + github.com/pion/interceptor v0.1.12 // indirect + github.com/pion/rtcp v1.2.10 github.com/pion/rtp v1.7.13 - github.com/pion/sdp/v3 v3.0.4 - github.com/pion/srtp/v2 v2.0.6 // indirect + github.com/pion/sdp/v3 v3.0.5 github.com/pion/turn/v2 v2.0.8 - github.com/pion/webrtc/v3 v3.1.34 - golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 - golang.org/x/net v0.0.0-20220421235706-1d1ef9303861 // indirect - golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 - golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect + github.com/pion/webrtc/v3 v3.1.43 + golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa + golang.org/x/net v0.0.0-20220722155237-a158d28d115b // indirect + golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.5.4/go.sum new/galene-0.5.5/go.sum --- old/galene-0.5.4/go.sum 2022-05-05 13:43:09.000000000 +0200 +++ new/galene-0.5.5/go.sum 2022-07-23 20:42:20.000000000 +0200 @@ -6,8 +6,8 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/golang-jwt/jwt/v4 v4.4.1 h1:pC5DB52sCeK48Wlb9oPcdhnjkz1TKt1D/P7WKJ0kUcQ= -github.com/golang-jwt/jwt/v4 v4.4.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= +github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= @@ -31,10 +31,8 @@ github.com/jech/cert v0.0.0-20210819231831-aca735647728/go.mod h1:FXUA/zpiQfV4uBVN2kAwkf3X7pU7l1l2ovS45CsSYZs= github.com/jech/samplebuilder v0.0.0-20220417174833-7353a593563a h1:yFkaguK4pmi0K33b8TA9T5Qoj0mZHpNPMCFdtru2yDg= github.com/jech/samplebuilder v0.0.0-20220417174833-7353a593563a/go.mod h1:U83y/Kl/5BrI9ceNw17+lmguIrlUlMVntxKmZmei5EA= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -51,14 +49,17 @@ github.com/pion/datachannel v1.5.2 h1:piB93s8LGmbECrpO84DnkIVWasRMk3IimbcXkTQLE6E= github.com/pion/datachannel v1.5.2/go.mod h1:FTGQWaHrdCwIJ1rw6xBIfZVkslikjShim5yr05XFuCQ= github.com/pion/dtls/v2 v2.0.9/go.mod h1:O0Wr7si/Zj5/EBFlDzDd6UtVxx25CE1r7XM7BQKYQho= -github.com/pion/dtls/v2 v2.1.3 h1:3UF7udADqous+M2R5Uo2q/YaP4EzUoWKdfX2oscCUio= github.com/pion/dtls/v2 v2.1.3/go.mod h1:o6+WvyLDAlXF7YiPB/RlskRoeK+/JtuaZa5emwQcWus= +github.com/pion/dtls/v2 v2.1.5 h1:jlh2vtIyUBShchoTDqpCCqiYCyRFJ/lvf/gQ8TALs+c= +github.com/pion/dtls/v2 v2.1.5/go.mod h1:BqCE7xPZbPSubGasRoDFJeTsyJtdD1FanJYL0JGheqY= github.com/pion/ice/v2 v2.1.12/go.mod h1:ovgYHUmwYLlRvcCLI67PnQ5YGe+upXZbGgllBDG/ktU= -github.com/pion/ice/v2 v2.2.6 h1:R/vaLlI1J2gCx141L5PEwtuGAGcyS6e7E0hDeJFq5Ig= github.com/pion/ice/v2 v2.2.6/go.mod h1:SWuHiOGP17lGromHTFadUe1EuPgFh/oCU6FCMZHooVE= +github.com/pion/ice/v2 v2.2.7 h1:kG9tux3WdYUSqqqnf+O5zKlpy41PdlvLUBlYJeV2emQ= +github.com/pion/ice/v2 v2.2.7/go.mod h1:Ckj7cWZ717rtU01YoDQA9ntGWCk95D42uVZ8sI0EL+8= github.com/pion/interceptor v0.1.0/go.mod h1:j5NIl3tJJPB3u8+Z2Xz8MZs/VV6rc+If9mXEKNuFmEM= -github.com/pion/interceptor v0.1.10 h1:DJ2GjMGm4XGIQgMJxuEpdaExdY/6RdngT7Uh4oVmquU= -github.com/pion/interceptor v0.1.10/go.mod h1:Lh3JSl/cbJ2wP8I3ccrjh1K/deRGRn3UlSPuOTiHb6U= +github.com/pion/interceptor v0.1.11/go.mod h1:tbtKjZY14awXd7Bq0mmWvgtHB5MDaRN7HV3OZ/uy7s8= +github.com/pion/interceptor v0.1.12 h1:CslaNriCFUItiXS5o+hh5lpL0t0ytQkFnUcbbCs2Zq8= +github.com/pion/interceptor v0.1.12/go.mod h1:bDtgAD9dRkBZpWHGKaoKb42FhDHTG2rX8Ii9LRALLVA= github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= github.com/pion/mdns v0.0.5 h1:Q2oj/JB3NqfzY9xGZ1fPzZzK7sDSD8rZPOvcIQ10BCw= @@ -67,11 +68,11 @@ github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8= github.com/pion/rtcp v1.2.6/go.mod h1:52rMNPWFsjr39z9B9MhnkqhPLoeHTv1aN63o/42bWE0= github.com/pion/rtcp v1.2.8/go.mod h1:qVPhiCzAm4D/rxb6XzKeyZiQK69yJpbUDJSF7TgrqNo= -github.com/pion/rtcp v1.2.9 h1:1ujStwg++IOLIEoOiIQ2s+qBuJ1VN81KW+9pMPsif+U= github.com/pion/rtcp v1.2.9/go.mod h1:qVPhiCzAm4D/rxb6XzKeyZiQK69yJpbUDJSF7TgrqNo= +github.com/pion/rtcp v1.2.10 h1:nkr3uj+8Sp97zyItdN60tE/S6vk4al5CPRR6Gejsdjc= +github.com/pion/rtcp v1.2.10/go.mod h1:ztfEwXZNLGyF1oQDttz/ZKIBaeeg/oWbRYqzBM9TL1I= github.com/pion/rtp v1.7.0/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko= github.com/pion/rtp v1.7.2/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko= -github.com/pion/rtp v1.7.4/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko= github.com/pion/rtp v1.7.13 h1:qcHwlmtiI50t1XivvoawdCGTP4Uiypzfrsap+bijcoA= github.com/pion/rtp v1.7.13/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko= github.com/pion/sctp v1.7.10/go.mod h1:EhpTUQu1/lcK3xI+eriS6/96fWetHGCvBi9MSsnaBN0= @@ -79,26 +80,28 @@ github.com/pion/sctp v1.8.0/go.mod h1:xFe9cLMZ5Vj6eOzpyiKjT9SwGM4KpK/8Jbw5//jc+0s= github.com/pion/sctp v1.8.2 h1:yBBCIrUMJ4yFICL3RIvR4eh/H2BTTvlligmSTy+3kiA= github.com/pion/sctp v1.8.2/go.mod h1:xFe9cLMZ5Vj6eOzpyiKjT9SwGM4KpK/8Jbw5//jc+0s= -github.com/pion/sdp/v3 v3.0.4 h1:2Kf+dgrzJflNCSw3TV5v2VLeI0s/qkzy2r5jlR0wzf8= github.com/pion/sdp/v3 v3.0.4/go.mod h1:bNiSknmJE0HYBprTHXKPQ3+JjacTv5uap92ueJZKsRk= +github.com/pion/sdp/v3 v3.0.5 h1:ouvI7IgGl+V4CrqskVtr3AaTrPvPisEOxwgpdktctkU= +github.com/pion/sdp/v3 v3.0.5/go.mod h1:iiFWFpQO8Fy3S5ldclBkpXqmWy02ns78NOKoLLL0YQw= github.com/pion/srtp/v2 v2.0.5/go.mod h1:8k6AJlal740mrZ6WYxc4Dg6qDqqhxoRG2GSjlUhDF0A= -github.com/pion/srtp/v2 v2.0.6 h1:sTS0ptsREtS+XJIagwPYMCFQPKE7TpYTz8BDTXcn0y8= -github.com/pion/srtp/v2 v2.0.6/go.mod h1:5TtM9yw6lsH0ppNCehB/EjEUli7VkUgKSPJqWVqbhQ4= +github.com/pion/srtp/v2 v2.0.10 h1:b8ZvEuI+mrL8hbr/f1YiJFB34UMrOac3R3N1yq2UN0w= +github.com/pion/srtp/v2 v2.0.10/go.mod h1:XEeSWaK9PfuMs7zxXyiN252AHPbH12NX5q/CFDWtUuA= github.com/pion/stun v0.3.5 h1:uLUCBCkQby4S1cf6CGuR9QrVOKcvUwFeemaC865QHDg= github.com/pion/stun v0.3.5/go.mod h1:gDMim+47EeEtfWogA37n6qXZS88L5V6LqFcf+DZA2UA= github.com/pion/transport v0.10.1/go.mod h1:PBis1stIILMiis0PewDw91WJeLJkyIMcEk+DwKOzf4A= github.com/pion/transport v0.12.2/go.mod h1:N3+vZQD9HlDP5GWkZ85LohxNsDcNgofQmyL6ojX5d8Q= github.com/pion/transport v0.12.3/go.mod h1:OViWW9SP2peE/HbwBvARicmAVnesphkNkCVZIWJ6q9A= -github.com/pion/transport v0.13.0 h1:KWTA5ZrQogizzYwPEciGtHPLwpAjE91FgXnyu+Hv2uY= github.com/pion/transport v0.13.0/go.mod h1:yxm9uXpK9bpBBWkITk13cLo1y5/ur5VQpG22ny6EP7g= +github.com/pion/transport v0.13.1 h1:/UH5yLeQtwm2VZIPjxwnNFxjS4DFhyLfS4GlfuKUzfA= +github.com/pion/transport v0.13.1/go.mod h1:EBxbqzyv+ZrmDb82XswEE0BjfQFtuw1Nu6sjnjWCsGg= github.com/pion/turn/v2 v2.0.5/go.mod h1:APg43CFyt/14Uy7heYUOGWdkem/Wu4PhCO/bjyrTqMw= github.com/pion/turn/v2 v2.0.8 h1:KEstL92OUN3k5k8qxsXHpr7WWfrdp7iJZHx99ud8muw= github.com/pion/turn/v2 v2.0.8/go.mod h1:+y7xl719J8bAEVpSXBXvTxStjJv3hbz9YFflvkpcGPw= github.com/pion/udp v0.1.1 h1:8UAPvyqmsxK8oOjloDk4wUt63TzFe9WEJkg5lChlj7o= github.com/pion/udp v0.1.1/go.mod h1:6AFo+CMdKQm7UiA0eUPA8/eVCTx8jBIITLZHc9DWX5M= github.com/pion/webrtc/v3 v3.1.0/go.mod h1:t51XSam1k56eYLuO1Ubxjs3pDBfGYxkGBFhYf55Mn/s= -github.com/pion/webrtc/v3 v3.1.34 h1:GUfv2zxWge77x1FhZ6Fge8KQd3bTzvX1CMN1/LmTazM= -github.com/pion/webrtc/v3 v3.1.34/go.mod h1:jClfnbJzt8wtmewGxhPzgE5wZ0U/gNB78XCtmc/uz3k= +github.com/pion/webrtc/v3 v3.1.43 h1:YT3ZTO94UT4kSBvZnRAH82+0jJPUruiKr9CEstdlQzk= +github.com/pion/webrtc/v3 v3.1.43/go.mod h1:G/J8k0+grVsjC/rjCZ24AKoCCxcFFODgh7zThNZGs0M= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -115,8 +118,10 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 h1:kUhD7nTDoI3fVd9G4ORWrbV5NY0liEs/Jg2pv5f+bBA= -golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220516162934-403b01795ae8/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -136,8 +141,11 @@ golang.org/x/net v0.0.0-20211201190559-0a0e4e1bb54c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220401154927-543a649e0bdd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220421235706-1d1ef9303861 h1:yssD99+7tqHWO5Gwh81phT+67hg+KttniBr6UnEXOY8= -golang.org/x/net v0.0.0-20220421235706-1d1ef9303861/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220531201128-c960675eff93/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220630215102-69896b714898/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -155,8 +163,11 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 h1:xHms4gcpe1YE7A3yIllJXP16CMAGuqwO2lX1mTyyRRc= -golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -170,8 +181,6 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f h1:GGU+dLjvlC3qDwqYgL6UgRmHXhOOgns0bZu2Ty5mm6U= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -181,7 +190,6 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.5.4/group/group.go new/galene-0.5.5/group/group.go --- old/galene-0.5.4/group/group.go 2022-05-05 13:43:09.000000000 +0200 +++ new/galene-0.5.5/group/group.go 2022-07-23 20:42:20.000000000 +0200 @@ -3,6 +3,7 @@ import ( "encoding/json" "errors" + "io/fs" "log" "net/url" "os" @@ -419,7 +420,7 @@ g := groups.groups[name] if g == nil { if desc == nil { - desc, err = GetDescription(name) + desc, err = readDescription(name) if err != nil { return nil, nil, err } @@ -431,30 +432,32 @@ clients: make(map[string]Client), timestamp: time.Now(), } - clients := g.getClientsUnlocked(nil) - autoLockKick(g, clients) groups.groups[name] = g - return g, clients, nil + return g, nil, nil } g.mu.Lock() defer g.mu.Unlock() if desc != nil { + if descriptionMatch(g.description, desc) { + return g, nil, nil + } g.description = desc - } else if !descriptionChanged(name, g.description) { + } else if descriptionUnchanged(name, g.description) { return g, nil, nil - } - - desc, err = GetDescription(name) - if err != nil { - if !os.IsNotExist(err) { - log.Printf("Reading group %v: %v", name, err) + } else { + desc, err = readDescription(name) + if err != nil { + if !os.IsNotExist(err) { + log.Printf("Reading group %v: %v", name, err) + } + deleteUnlocked(g) + return nil, nil, err } - deleteUnlocked(g) - return nil, nil, err + g.description = desc } - g.description = desc + clients := g.getClientsUnlocked(nil) autoLockKick(g, clients) @@ -1025,21 +1028,47 @@ return nil, "", false, os.ErrNotExist } -// descriptionChanged returns true if a group's description may have +// descriptionMatch returns true if the description hasn't changed between +// d1 and d2 +func descriptionMatch(d1, d2 *Description) bool { + if d1.FileName != d2.FileName { + return false + } + + if d1.fileSize != d2.fileSize || !d1.modTime.Equal(d2.modTime) { + return false + } + return true +} + +// descriptionUnchanged returns true if a group's description hasn't // changed since it was last read. -func descriptionChanged(name string, desc *Description) bool { +func descriptionUnchanged(name string, desc *Description) bool { fi, fileName, _, err := statDescriptionFile(name) if err != nil || fileName != desc.FileName { - return true + return false } - if fi.Size() != desc.fileSize || fi.ModTime() != desc.modTime { - return true + if fi.Size() != desc.fileSize || !fi.ModTime().Equal(desc.modTime) { + return false } - return false + return true } +// GetDescription gets a group description, either from cache or from disk func GetDescription(name string) (*Description, error) { + g := Get(name) + if g != nil { + if descriptionUnchanged(name, g.description) { + return g.description, nil + } + } + + return readDescription(name) +} + +// readDescription reads a group's description from disk +func readDescription(name string) (*Description, error) { r, fileName, isParent, err := openDescriptionFile(name) if err != nil { return nil, err @@ -1217,19 +1246,19 @@ deleted = Delete(name) } - if !deleted && descriptionChanged(name, g.description) { + if !deleted && !descriptionUnchanged(name, g.description) { Add(name, nil) } } - err = filepath.Walk( + err = filepath.WalkDir( Directory, - func(path string, fi os.FileInfo, err error) error { + func(path string, d fs.DirEntry, err error) error { if err != nil { log.Printf("Group file %v: %v", path, err) return nil } - if fi.IsDir() { + if d.IsDir() { return nil } filename, err := filepath.Rel(Directory, path) @@ -1249,7 +1278,7 @@ log.Printf("Group file %v ignored", filename) return nil } - name := filename[:len(filename)-5] + name := strings.TrimSuffix(filename, ".json") desc, err := GetDescription(name) if err != nil { log.Printf("Group file %v: %v", path, err) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.5.4/rtptime/rtptime.go new/galene-0.5.5/rtptime/rtptime.go --- old/galene-0.5.4/rtptime/rtptime.go 2022-05-05 13:43:09.000000000 +0200 +++ new/galene-0.5.5/rtptime/rtptime.go 2022-07-23 20:42:20.000000000 +0200 @@ -2,6 +2,7 @@ package rtptime import ( + "math/bits" "time" ) @@ -9,25 +10,29 @@ var epoch = time.Now() // FromDuration converts a time.Duration into units of 1/hz. +// Negative values are clamped to zero. func FromDuration(d time.Duration, hz uint32) int64 { - return int64(d) * int64(hz) / int64(time.Second) + if d < 0 { + return -FromDuration(-d, hz) + } + hi, lo := bits.Mul64(uint64(d), uint64(hz)) + q, _ := bits.Div64(hi, lo, uint64(time.Second)) + return int64(q) } // ToDuration converts units of 1/hz into a time.Duration. func ToDuration(tm int64, hz uint32) time.Duration { - return time.Duration(tm * int64(time.Second) / int64(hz)) -} - -func sat(a int64) uint64 { - if a < 0 { - return 0 + if tm < 0 { + return -ToDuration(-tm, hz) } - return uint64(a) + hi, lo := bits.Mul64(uint64(tm), uint64(time.Second)) + q, _ := bits.Div64(hi, lo, uint64(hz)) + return time.Duration(q) } // Now returns the current time in units of 1/hz from an arbitrary origin. func Now(hz uint32) uint64 { - return sat(FromDuration(time.Since(epoch), hz)) + return uint64(FromDuration(time.Since(epoch), hz)) } // Microseconds is like Now, but uses microseconds. @@ -46,7 +51,7 @@ // TimeToJiffies converts a time.Time into jiffies. func TimeToJiffies(tm time.Time) uint64 { - return sat(FromDuration(tm.Sub(epoch), JiffiesPerSec)) + return uint64(FromDuration(tm.Sub(epoch), JiffiesPerSec)) } // The origin of NTP time. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.5.4/rtptime/rtptime_test.go new/galene-0.5.5/rtptime/rtptime_test.go --- old/galene-0.5.4/rtptime/rtptime_test.go 2022-05-05 13:43:09.000000000 +0200 +++ new/galene-0.5.5/rtptime/rtptime_test.go 2022-07-23 20:42:20.000000000 +0200 @@ -27,6 +27,25 @@ } } +func TestDurationOverflow(t *testing.T) { + delta := 10 * time.Minute + dj := FromDuration(delta, JiffiesPerSec) + var prev int64 + for d := time.Duration(0); d < time.Duration(1000*time.Hour); d += delta { + jiffies := FromDuration(d, JiffiesPerSec) + if d != 0 { + if jiffies != prev+dj { + t.Errorf("%v: %v, %v", d, jiffies, prev) + } + } + d2 := ToDuration(jiffies, JiffiesPerSec) + if d2 != d { + t.Errorf("%v != %v (%v)", d2, d, jiffies) + } + prev = jiffies + } +} + func differs(a, b, delta uint64) bool { if a < b { a, b = b, a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.5.4/static/galene.css new/galene-0.5.5/static/galene.css --- old/galene-0.5.4/static/galene.css 2022-05-05 13:43:09.000000000 +0200 +++ new/galene-0.5.5/static/galene.css 2022-07-23 20:42:20.000000000 +0200 @@ -1057,48 +1057,6 @@ 100% { box-shadow: 0 0 15px #600aa0; } } -/* Dropdown Menu */ -.dropbtn { - cursor: pointer; -} - -.dropdown { - position: relative; - display: inline-block; -} - -.dropdown-content { - display: none; - position: absolute; - background-color: #fff; - max-width: 300px; - min-width: 200px; - margin-top: 7px; - overflow: auto; - right: 7px; - box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2); - z-index: 1; - padding: 15px; -} - -.dropdown-content a { - color: black; - padding: 12px 16px; - text-decoration: none; - display: block; -} - -.dropdown a:hover {background-color: #ddd;} - -.show {display: block;} - -.dropdown-content label{ - display: block; - margin-top: 15px; -} - -/* END Dropdown Menu */ - /* Sidebar left */ #left-sidebar { @@ -1349,3 +1307,7 @@ --contextualOverflowIcon: #999; --contextualSeperator: #999; } + +.contextualMenu{ + z-index: 2999; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.5.4/static/galene.js new/galene-0.5.5/static/galene.js --- old/galene-0.5.4/static/galene.js 2022-05-05 13:43:09.000000000 +0200 +++ new/galene-0.5.5/static/galene.js 2022-07-23 20:42:20.000000000 +0200 @@ -1418,6 +1418,20 @@ let safariScreenshareDone = false; async function addShareMedia() { + if(!safariScreenshareDone) { + if(isSafari()) { + let ok = confirm( + 'Screen sharing in Safari is badly broken. ' + + 'It will work at first, ' + + 'but then your video will randomly freeze. ' + + 'Are you sure that you wish to enable screensharing?' + ); + if(!ok) + return + } + safariScreenshareDone = true; + } + /** @type {MediaStream} */ let stream = null; try { @@ -1433,13 +1447,6 @@ return; } - if(!safariScreenshareDone) { - if(isSafari()) - displayWarning('Screen sharing under Safari is experimental. ' + - 'Please use a different browser if possible.'); - safariScreenshareDone = true; - } - let c = newUpStream(); c.label = 'screenshare'; setUpStream(c, stream); ++++++ vendor.tar.gz ++++++ ++++ 23605 lines of diff (skipped)