Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package galene for openSUSE:Factory checked in at 2021-04-17 23:24:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/galene (Old) and /work/SRC/openSUSE:Factory/.galene.new.12324 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "galene" Sat Apr 17 23:24:48 2021 rev:7 rq:886128 version:0.3.3 Changes: -------- --- /work/SRC/openSUSE:Factory/galene/galene.changes 2021-03-05 13:49:37.679859538 +0100 +++ /work/SRC/openSUSE:Factory/.galene.new.12324/galene.changes 2021-04-17 23:24:51.213582642 +0200 @@ -1,0 +2,8 @@ +Fri Apr 16 20:42:16 UTC 2021 - [email protected] + +- Update to version 0.3.3: + * Fixed an off-by-one error that could occasionally lead to a server + crash. + * Attempt to negotiate stereo Opus audio. + +------------------------------------------------------------------- Old: ---- galene-0.3.2.tar.gz New: ---- galene-0.3.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ galene.spec ++++++ --- /var/tmp/diff_new_pack.DfzIrL/_old 2021-04-17 23:24:52.589584987 +0200 +++ /var/tmp/diff_new_pack.DfzIrL/_new 2021-04-17 23:24:52.593584994 +0200 @@ -25,7 +25,7 @@ %bcond_without apparmor Name: galene -Version: 0.3.2 +Version: 0.3.3 Release: 0 Summary: Gal??ne videoconferencing server License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.DfzIrL/_old 2021-04-17 23:24:52.617585035 +0200 +++ /var/tmp/diff_new_pack.DfzIrL/_new 2021-04-17 23:24:52.621585042 +0200 @@ -3,8 +3,8 @@ <param name="url">git://github.com/jech/galene.git</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">galene-0.3.2</param> - <param name="version">0.3.2</param> + <param name="revision">galene-0.3.3</param> + <param name="version">0.3.3</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.DfzIrL/_old 2021-04-17 23:24:52.637585069 +0200 +++ /var/tmp/diff_new_pack.DfzIrL/_new 2021-04-17 23:24:52.637585069 +0200 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">git://github.com/jech/galene.git</param> - <param name="changesrevision">3bf0f9ef4cfadf9caa10c67e7e51f7313cc37f57</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">45558f3e881543b0394e70069f2307434b9f6580</param></service></servicedata> \ No newline at end of file ++++++ galene-0.3.2.tar.gz -> galene-0.3.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.3.2/CHANGES new/galene-0.3.3/CHANGES --- old/galene-0.3.2/CHANGES 2021-03-03 00:05:33.000000000 +0100 +++ new/galene-0.3.3/CHANGES 2021-04-16 22:31:25.000000000 +0200 @@ -1,3 +1,9 @@ +16 April 2021: Gal??ne 0.3.3 + + * Fixed an off-by-one error that could occasionally lead to a server + crash. Thanks to Louis Gesbert. + * Attempt to negotiate stereo Opus audio. + 3 March 2021: Gal??ne 0.3.2 * Fixed compatibility with versions of Go earlier than 1.15 (thanks to diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.3.2/README.PROTOCOL new/galene-0.3.3/README.PROTOCOL --- old/galene-0.3.2/README.PROTOCOL 2021-03-03 00:05:33.000000000 +0100 +++ new/galene-0.3.3/README.PROTOCOL 2021-04-16 22:31:25.000000000 +0200 @@ -181,6 +181,7 @@ ```javascript { type: 'ice', + id: id, candidate: candidate } ``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.3.2/galene-password-generator/galene-password-generator.go new/galene-0.3.3/galene-password-generator/galene-password-generator.go --- old/galene-0.3.2/galene-password-generator/galene-password-generator.go 1970-01-01 01:00:00.000000000 +0100 +++ new/galene-0.3.3/galene-password-generator/galene-password-generator.go 2021-04-16 22:31:25.000000000 +0200 @@ -0,0 +1,71 @@ +package main + +import ( + "crypto/rand" + "crypto/sha256" + "encoding/hex" + "encoding/json" + "flag" + "fmt" + "log" + "os" + + "golang.org/x/crypto/pbkdf2" + + "github.com/jech/galene/group" +) + +func main() { + var iterations int + var length int + var saltLen int + var username string + flag.StringVar(&username, "user", "", + "generate entry for given `username`") + flag.IntVar(&iterations, "iterations", 4096, "`number` of iterations") + flag.IntVar(&length, "key", 32, "key `length`") + flag.IntVar(&saltLen, "salt", 8, "salt `length`") + flag.Parse() + + if len(flag.Args()) == 0 { + fmt.Fprintf( + flag.CommandLine.Output(), + "Usage: %s [option...] password...\n", + os.Args[0]) + flag.PrintDefaults() + os.Exit(2) + } + + salt := make([]byte, saltLen) + + for _, pw := range flag.Args() { + _, err := rand.Read(salt) + if err != nil { + log.Fatalf("Salt: %v", err) + } + key := pbkdf2.Key( + []byte(pw), salt, iterations, length, sha256.New, + ) + + p := group.Password{ + Type: "pbkdf2", + Hash: "sha-256", + Key: hex.EncodeToString(key), + Salt: hex.EncodeToString(salt), + Iterations: iterations, + } + e := json.NewEncoder(os.Stdout) + if username != "" { + creds := group.ClientCredentials{ + Username: username, + Password: &p, + } + err = e.Encode(creds) + } else { + err = e.Encode(p) + } + if err != nil { + log.Fatalf("Encode: %v", err) + } + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.3.2/galene-password-generator/galene-password.generator.go new/galene-0.3.3/galene-password-generator/galene-password.generator.go --- old/galene-0.3.2/galene-password-generator/galene-password.generator.go 2021-03-03 00:05:33.000000000 +0100 +++ new/galene-0.3.3/galene-password-generator/galene-password.generator.go 1970-01-01 01:00:00.000000000 +0100 @@ -1,71 +0,0 @@ -package main - -import ( - "crypto/rand" - "crypto/sha256" - "encoding/hex" - "encoding/json" - "flag" - "fmt" - "log" - "os" - - "golang.org/x/crypto/pbkdf2" - - "github.com/jech/galene/group" -) - -func main() { - var iterations int - var length int - var saltLen int - var username string - flag.StringVar(&username, "user", "", - "generate entry for given `username`") - flag.IntVar(&iterations, "iterations", 4096, "`number` of iterations") - flag.IntVar(&length, "key", 32, "key `length`") - flag.IntVar(&saltLen, "salt", 8, "salt `length`") - flag.Parse() - - if len(flag.Args()) == 0 { - fmt.Fprintf( - flag.CommandLine.Output(), - "Usage: %s [option...] password...\n", - os.Args[0]) - flag.PrintDefaults() - os.Exit(2) - } - - salt := make([]byte, saltLen) - - for _, pw := range flag.Args() { - _, err := rand.Read(salt) - if err != nil { - log.Fatalf("Salt: %v", err) - } - key := pbkdf2.Key( - []byte(pw), salt, iterations, length, sha256.New, - ) - - p := group.Password{ - Type: "pbkdf2", - Hash: "sha-256", - Key: hex.EncodeToString(key), - Salt: hex.EncodeToString(salt), - Iterations: iterations, - } - e := json.NewEncoder(os.Stdout) - if username != "" { - creds := group.ClientCredentials{ - Username: username, - Password: &p, - } - err = e.Encode(creds) - } else { - err = e.Encode(p) - } - if err != nil { - log.Fatalf("Encode: %v", err) - } - } -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.3.2/group/group.go new/galene-0.3.3/group/group.go --- old/galene-0.3.2/group/group.go 2021-03-03 00:05:33.000000000 +0100 +++ new/galene-0.3.3/group/group.go 2021-04-16 22:31:25.000000000 +0200 @@ -151,7 +151,7 @@ case "opus": return webrtc.RTPCodecCapability{ "audio/opus", 48000, 2, - "minptime=10;useinbandfec=1", + "minptime=10;useinbandfec=1;stereo=1;sprop-stereo=1", nil, }, nil case "g722": diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.3.2/packetcache/packetcache.go new/galene-0.3.3/packetcache/packetcache.go --- old/galene-0.3.2/packetcache/packetcache.go 2021-03-03 00:05:33.000000000 +0100 +++ new/galene-0.3.3/packetcache/packetcache.go 2021-04-16 22:31:25.000000000 +0200 @@ -412,7 +412,7 @@ cache.mu.Lock() defer cache.mu.Unlock() - if int(index) > len(cache.entries) { + if int(index) >= len(cache.entries) { return 0 } if cache.entries[index].seqno != seqno { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.3.2/rtpconn/webclient.go new/galene-0.3.3/rtpconn/webclient.go --- old/galene-0.3.2/rtpconn/webclient.go 2021-03-03 00:05:33.000000000 +0100 +++ new/galene-0.3.3/rtpconn/webclient.go 2021-04-16 22:31:25.000000000 +0200 @@ -678,6 +678,9 @@ } func (c *webClient) setRequested(requested map[string]uint32) error { + if c.group == nil { + return errors.New("attempted to request with no group joined") + } c.requested = requested pushConns(c, c.group) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.3.2/static/galene.css new/galene-0.3.3/static/galene.css --- old/galene-0.3.2/static/galene.css 2021-03-03 00:05:33.000000000 +0100 +++ new/galene-0.3.3/static/galene.css 2021-04-16 22:31:25.000000000 +0200 @@ -966,7 +966,9 @@ .sidenav-content { padding: 10px; background: #fff; - height: 100%; + height: calc(100% - 56px); + overflow-y: scroll; + overflow-x: hidden; } .sidenav-content h2 { @@ -1120,12 +1122,10 @@ height: 20px; } -/* Shrinking the sidebar from 200px to 60px and center aligining its content*/ +/* Shrinking the sidebar from 200px to 0px */ #left-sidebar.active { - min-width: 60px; - max-width: 60px; - text-align: center; - margin-left: -60px !important; + min-width: 0; + max-width: 0; } #left-sidebar .sidebar-header strong { @@ -1265,10 +1265,8 @@ } #left-sidebar { - min-width: 60px; - max-width: 60px; - text-align: center; - margin-left: -60px !important; + min-width: 0; + max-width: 0; } /* Reappearing the sidebar on toggle button click */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.3.2/static/galene.html new/galene-0.3.3/static/galene.html --- old/galene-0.3.2/static/galene.html 2021-03-03 00:05:33.000000000 +0100 +++ new/galene-0.3.3/static/galene.html 2021-04-16 22:31:25.000000000 +0200 @@ -2,6 +2,7 @@ <html lang="en"> <head> <title>Gal??ne</title> + <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="ScreenOrientation" content="autoRotate:disabled"> <link rel="stylesheet" type="text/css" href="/common.css"/> @@ -98,7 +99,9 @@ </div> <div id="resizer"></div> <div class="coln-right" id="right"> - <span class="show-video blink" id="switch-video"><i class="fas fa-exchange" aria-hidden="true"></i></span> + <span class="show-video blink" id="switch-video"> + <i class="fas fa-exchange-alt" aria-hidden="true"></i> + </span> <div class="collapse-video" id="collapse-video"> <i class="far fa-comment-alt open-chat" title="Open chat"></i> </div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.3.2/static/galene.js new/galene-0.3.3/static/galene.js --- old/galene-0.3.2/static/galene.js 2021-03-03 00:05:33.000000000 +0100 +++ new/galene-0.3.3/static/galene.js 2021-04-16 22:31:25.000000000 +0200 @@ -40,6 +40,12 @@ let fallbackUserPass = null; +/* max-device-width which is defined in css for mobile layout */ +/** + * @type {number} + */ +let mobileViewportWidth = 1024; + /** * @param {string} username * @param {string} password @@ -98,7 +104,7 @@ window.sessionStorage.setItem('settings', JSON.stringify(settings)); fallbackSettings = null; } catch(e) { - console.warn("Couldn't store password:", e); + console.warn("Couldn't store settings:", e); fallbackSettings = settings; } } @@ -115,7 +121,7 @@ let json = window.sessionStorage.getItem('settings'); settings = JSON.parse(json); } catch(e) { - console.warn("Couldn't retrieve password:", e); + console.warn("Couldn't retrieve settings:", e); settings = fallbackSettings; } return settings || {}; @@ -257,7 +263,7 @@ let width = window.innerWidth; let video_container = document.getElementById('video-container'); video_container.classList.remove('no-video'); - if (width <= 768) + if (width <= mobileViewportWidth) document.getElementById('collapse-video').style.display = "block"; } @@ -904,7 +910,7 @@ } Filter.prototype.draw = function() { - // check framerate evecry 30 frames + // check framerate every 30 frames if((this.count % 30) === 0) { let frameRate = 0; this.inputStream.getTracks().forEach(t => { @@ -2667,7 +2673,7 @@ left.style.display = "block"; this.style.display = ""; } - if (width <= 768) { + if (width <= mobileViewportWidth) { // fixed div for small screen this.style.display = ""; hideVideo(true); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/galene-0.3.2/static/index.html new/galene-0.3.3/static/index.html --- old/galene-0.3.2/static/index.html 2021-03-03 00:05:33.000000000 +0100 +++ new/galene-0.3.3/static/index.html 2021-04-16 22:31:25.000000000 +0200 @@ -31,7 +31,7 @@ </div> </div> <footer class="signature"> - <p><a href="https://galene.org/">Gal??ne</a> by <a href="https://www.irif.fr/~jch/" rel="author">Juliusz Chroboczek</a> + <p><a href="https://galene.org/">Gal??ne</a> by <a href="https://www.irif.fr/~jch/" rel="author">Juliusz Chroboczek</a></p> </footer> <script src="/mainpage.js" defer></script> ++++++ vendor.tar.gz ++++++
