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)

Reply via email to