1
Fork 0
mirror of https://github.com/jech/galene.git synced 2024-12-22 15:25:48 +01:00
galene/CHANGES

360 lines
16 KiB
Text
Raw Normal View History

2024-10-27 15:09:49 +01:00
Galene 0.95.0 (unreleased)
* Galene now requires Go 1.20.
* Added "galenectl" utility and removed "galene-password-generator".
This is an incompatible change.
* Fixed a number of bugs in the management protocol.
2024-11-08 15:32:46 +01:00
* Implemented captions for the galene-stt tool.
2024-10-27 15:09:49 +01:00
* Reworked the peer-to-peer file transfer protocol. This is an
incompatible change.
* Added an id to every chat message, and made it possible to remove
a single chat message.
2024-11-11 16:54:59 +01:00
* Fixed a race condition that prevented operators from joining an
AutoKick group.
2024-12-01 22:55:55 +01:00
* Fixed a bug that could cause us to signal our ability to do RTCP
feedback incorrectly.
* Fixed a bug that would trigger JavaScript errors when a user attempted
to send a file to themself.
2024-10-27 15:09:49 +01:00
2024-07-15 14:20:49 +02:00
15 July 2024: Galene 0.9.1
2024-06-10 21:38:52 +02:00
* Added an example client with minimal functionality under static/example.
* Changed the token login to force a user interaction in order to avoid
issues with autoplay.
2024-07-15 14:20:49 +02:00
* Fixed a race condition that would cause the client to run with
undefined settings if the initial connection was extremely fast.
2024-06-10 21:38:52 +02:00
* Implemented client-side timeouts (we already had one on the server side).
* Reduced the server-side timeout.
* Don't attempt to set the file descriptor limit, since recent versions
of the Go runtime do it automatically.
2024-05-26 20:17:34 +02:00
26 May 2024: Galene 0.9
2024-04-11 17:50:38 +02:00
* Reworked the group definition format to be more modular. There are
some incompatible changes: multiple users with the same username but
distinct passords are no longer supported, and the field
"allow-anonymous" is ignored.
* Reworked the definition of administrator passwords in config.json.
The old field "admin" is ignored, a new field "users" is required.
This is an incompatible change.
2024-05-02 19:58:00 +02:00
* Implemented an administrative API over HTTP. Set the field
"writableGroups" in config.json to enable it. The API is described in
the file "README.API", a JavaScript library is in management.js.
2024-04-11 17:50:38 +02:00
* Implemented a form to allow users to change their password. If the
HTTP API is enabled, a link will appear in the side menu.
2024-05-02 19:58:00 +02:00
* Implemented a new command "/identify" (also availble in the users
menu) that discloses the IP address from which a user connected.
* Implemented a contextual menu that triggers on a double click on
a chat entry.
2024-05-08 15:14:45 +02:00
* Added a new command "/stopshare".
2024-05-09 12:27:27 +02:00
* Added a new permission "message" and new commands "shutup" and "unshutup".
* Changed stateless token validation to attempt all keys rather than
just the first matching one.
2024-04-11 17:50:38 +02:00
2024-05-26 20:13:48 +02:00
26 May 2024: Galene 0.8.3
* Fixed a bug that could allow any user to clear the chat.
2024-04-14 15:49:54 +02:00
14 April 2024: Galene 0.8.2
* Fixed possible crashes in the VP8 and AV1 parsers.
* Fixed keyframe detection for VP8 and VP9.
2024-03-09 13:07:33 +01:00
9 March 2024: Galene 0.8.1
2024-02-24 12:56:29 +01:00
* Security fixes to WHIP ingress.
2024-03-03 15:54:19 +01:00
* Improved error messages for authentication failures.
2024-03-09 13:07:33 +01:00
* Added "expires" and "not-before" to group descriptions.
2024-02-24 12:56:29 +01:00
* Allow proxyURL to contain a path, for people who run Galene at
2024-03-09 13:07:33 +01:00
non-root URLs. This requires manually modifying the files under
'static/' in order to point at the right locations.
2024-02-24 12:56:29 +01:00
2023-11-25 23:12:38 +01:00
25 November 2023: Galene 0.8
2023-07-09 16:40:12 +02:00
2023-07-11 18:07:47 +02:00
* Added a new configuration option "publicServer".
2024-02-24 12:56:29 +01:00
* Implemented the WHIP protocol (draft-ietf-wish-whip).
2023-07-11 18:07:47 +02:00
* Disabled simulcast on Firefox by default.
2023-11-23 18:40:03 +01:00
* Removed support for protocol version 1 (used before version 0.7)
* Worked around clients that don't set the VP9 and H.264 profiles.
* Updated the activity detection code to work with newer browsers.
Thanks to Jackson Vieira.
* Constrained videos sent from a browser to use 4:3 aspect.
* Implemented BCrypt as an alternate password encryption algorithm.
2023-07-09 16:40:12 +02:00
2023-07-09 14:02:47 +02:00
9 July 2023: Galene 0.7.2
2024-03-09 13:07:33 +01:00
* Improved workaround for Safari's autoplay-related mis-features.
2023-07-11 18:07:47 +02:00
* Fixed minor bugs related to stateful tokens.
2023-07-09 14:02:47 +02:00
2023-05-14 21:22:42 +02:00
14 May 2023: Galene 0.7.1
2023-07-11 18:07:47 +02:00
* Fixed incorrect error-handling in token parsing, which could cause
2023-05-14 21:22:42 +02:00
Galene to crash after receiving a mis-formatted token.
* Implement a dialog for creating tokens.
2023-07-11 18:07:47 +02:00
* Tweaked peer-to-peer file transfer to more reliably return an error
2023-05-14 21:22:42 +02:00
message to the user.
2023-07-11 18:07:47 +02:00
* Fixed the workaround for non-standard simulcast in older Firefox
2023-05-14 21:22:42 +02:00
versions.
2023-04-10 15:29:48 +02:00
10 April 2023: Galene 0.7.0
2023-04-04 01:47:18 +02:00
2023-04-10 15:29:48 +02:00
* Updated the protocol version to 2. Dates are now represented in
ISO 8601 format, and there is a new "error" field in error messages
that contains a machine-readable identifier.
2023-04-04 01:47:18 +02:00
* Implemented stateful tokens ("invitations").
* Made more errors non-fatal, which makes it possible for the client
to recover in more situations.
* Reworked the progress indicator used during file transfer.
* Added Referrer-Policy and X-Content-Type-Options headers to HTTP
2023-04-10 15:29:48 +02:00
responses (Galene was already generating HTML links with the
2023-04-04 01:47:18 +02:00
"noreferrer" option). Thanks to Alexandre Iooss.
2023-04-10 15:29:48 +02:00
* Fixed a bug in the handling of leave messages. (The bundled client
never sends leave, it just disconnects, so the bug never triggerred.)
* Changed the way simulcast tracks are selected to not depend on the rid.
2023-04-04 01:47:18 +02:00
2023-01-11 19:51:59 +01:00
11 January 2023: Galene 0.6.2
* Disable simulcast for screensharing; this didn't work well with many
browsers.
* Fix parsing of VP8 packets with degenerate headers.
* Fix computation of group URL when running in insecure mode.
* Add configuration option "proxyURL", which makes it easier to run
Galene behind a reverse proxy.
* Disable ulimit checking on BSD systems, where our code doesn't compile.
2022-10-07 14:38:49 +02:00
7 October 2022: Galene 0.6.1
2022-09-16 19:43:05 +02:00
2022-10-07 11:43:12 +02:00
* Add a camera/microphone indicator in the users list, and hide
audio-only peers by default. They can be reenabled in the side menu.
* Ensure that autolocked groups are locked on creation. Thanks to
Michael Ströder.
* Don't send chat history multiple times. Thanks to Rémy Nollet.
2022-10-07 11:43:12 +02:00
* Fix status display for remote (redirected) groups.
2022-09-16 19:43:05 +02:00
2022-09-10 14:27:58 +02:00
10 September 2022: Galene 0.6
2022-08-31 17:35:42 +02:00
* Version the protocol: the handshake message now contains a version
number, and the server will warn if it is incorrect. This will become
a hard error in the future.
2022-08-31 17:35:42 +02:00
* Rework the peer-to-peer file transfer protocol. It now lives in
protocol.js, which makes it easy to use by third-party clients.
* Extend the authorization protocol to allow the authorization server to
request that the client fall back to password authorization.
* Make it possible to run the web server on a Unix domain socket.
Thanks to Martin Pépin.
* Check that a given group exists before redirecting from the landing
page. This avoids an unsightly 404 error when the user makes a typo.
2022-09-10 14:27:58 +02:00
* Publish the group name end websocket endpoint in the group status.
This avoids hardwirint the server structure in the client.
* Fix a race condition that could cause chathistory messages to be sent
before the joined status.
2022-08-31 17:35:42 +02:00
2022-07-23 20:42:20 +02:00
23 July 2022: Galene 0.5.5
2022-08-31 17:35:42 +02:00
* Fix a longstanding bug with time conversion that would occasionally
2022-07-23 20:42:20 +02:00
cause us to miscalculate rates and send incorrect sender reports.
Thanks to lamhai1401.
2022-08-31 17:35:42 +02:00
* Update srtp to a version that includes Adrian Cable's optimisations.
2022-07-23 20:42:20 +02:00
This should yield a 10% to 20% improvement for AES-CTR (but modern
browsers use GCM).
2022-08-31 17:35:42 +02:00
* Reword the Safari warning to be more frightening, since screensharing
on Safari tends to get stuck.
2022-07-23 20:42:20 +02:00
2022-05-05 13:41:07 +02:00
5 May 2022: Galene 0.5.4
* Fix username check when a token is present.
* Improve the performance of AES in CTR mode.
* Tweak detection of keyframes with H.264.
2022-04-25 13:13:54 +02:00
25 April 2022: Galene 0.5.3
* Remove a forgotten "replace" that prevented 0.5.2 from compiling
unless "pion/ice" was downloaded manually.
* Fix a race condition in the rate estimator.
* Update pion/ice to a version that handles aggressive nomination; this
avoids broken connection in some (fairly rare) cases.
2022-04-20 19:55:33 +02:00
20 April 2022: Galene 0.5.2
2022-04-17 21:11:14 +02:00
* Implement audio-video sync in the diskwriter.
* Fix setting of the keyframe flag in audio samples in diskwriter.
2022-04-20 19:55:33 +02:00
* Don't use high-quality audio for screenshare by default, obey the
hqaudio preference in all cases.
* Maintain user information for oneself, not just other users.
* Call the onuser callback when a user deletes a stream.
2022-04-17 21:11:14 +02:00
2022-03-25 10:44:45 +01:00
25 March 2022: Galene 0.5.1
2022-03-22 02:45:56 +01:00
* Enable simulcast on Firefox.
* Fix rate control on Firefox.
* Fix corruption after packet reordering when saving to disk.
* Fix the H.264 profile for compatibility with older iPhones.
2022-03-22 18:49:52 +01:00
* Display a warning when joining a locked group.
2022-03-25 10:44:45 +01:00
* Add a hook that allows the client to influence the ICE policy.
* Fix error handling in peer-to-peer file transfer.
2022-03-22 02:45:56 +01:00
2022-03-08 16:03:12 +01:00
8 March 2022: Galene 0.5
2022-02-01 20:29:51 +01:00
2022-02-20 20:10:03 +01:00
* Implement third-party (token-based) authentication.
2022-02-21 23:47:39 +01:00
* Implement peer-to-peer file transfer (/sendfile).
2022-02-20 20:10:03 +01:00
* Add a contextual menu to the users list.
2022-02-21 23:47:39 +01:00
* Removed the "Broadcast file" entry in the side menu, it is now
available as a context menu entry and a chat command (/presentfile).
* Add side-menu options for high-quality audio (Opus at 128kbps) and
disabling audio preprocessing.
* Send audio in addition to video when sharing browser tabs.
2022-02-01 20:29:51 +01:00
2022-02-01 20:18:44 +01:00
1 February 2022: Galene 0.4.4
* Update dependencies. Pion WebRTC v3.1.19 fixes a bug that could cause
audio tracks to be discarded under some circumstances.
* Fix a bug that could cause user statuses (raisehand) to be discarded.
* Fix incorrect maxRate value in statistics display.
27 January 2022: Galène 0.4.3
2022-01-25 16:39:22 +01:00
* Fix a locking issue that could cause a deadlock when massive numbers
of clients join at the same time.
* Add support for displaying raised hands (thanks to Sascha Silbe).
* Update the MIME type for AV1 to track recent browsers.
2022-01-27 14:22:43 +01:00
* Avoid overflow during rate estimation.
* More fixes to the disk writer.
2022-01-25 16:39:22 +01:00
2021-12-01 23:47:50 +01:00
1 December 2021: Galène 0.4.2
2021-11-23 19:57:53 +01:00
* Update the samplebuilder to avoid a crash when a single frame is so
large that it overflows the buffer.
2021-12-01 23:47:50 +01:00
* Various other changes that improve the quality of disk recordings.
2021-11-23 19:57:53 +01:00
2021-11-05 15:31:09 +01:00
4 November 2021: Galène 0.4.1
2021-10-30 19:06:56 +02:00
* Create a new file data/config.json with global configuration.
* Remove data/passwd and the -redirect option with entries in config.json;
these are incompatible changes.
* Change the group URL from /group/name to /group/name/, which allows
using relative links. The old URL is redirected to the new one.
* Extend the protocol with the ability to consult the group status before
joining; this allows using the group's displayName before the user has
logged in, and will be required for new authorisation schemes.
* Allow scrolling of the login dialog, useful on small devices.
* Fixed a typo that prevented the group name from being displayed.
2021-10-31 18:12:34 +01:00
* Made failed videos more visible.
* No longer attempt to save passwords in browser JavaScript, it's
insecure and not very useful.
2021-10-30 19:06:56 +02:00
2021-09-05 18:35:19 +02:00
5 September 2021: Galène 0.4
2021-05-15 11:46:22 +02:00
* Implemented simulcast.
2021-07-15 18:50:09 +02:00
* Implemented scalable video coding (SVC) for VP8 and VP9.
2021-05-15 20:14:37 +02:00
* Preliminary support for the AV1 codec.
2021-07-15 18:50:09 +02:00
* Fixed the profile announced for VP9.
* Reworked the disk writer, which should no longer cause corruption
after packet loss.
2021-07-29 23:54:20 +02:00
* Added support for recording H.264 tracks.
2021-07-15 18:50:09 +02:00
* Reworked the signalling protocol, it is now possible to request
different tracks for distinct streams, and there are provisions to
carry user permissions and statuses; this is not yet used by the user
2021-07-16 14:41:33 +02:00
interface.
2021-07-15 18:50:09 +02:00
* Reworked internal signalling; this will hopefully fix issues with
losing tracks under load.
2021-05-15 11:46:22 +02:00
* Added an option to limit the range of UDP ports used by the server.
* Added a close button in every locally-generated video; this allows
2021-09-05 18:35:19 +02:00
closing individual screen shares and simplifies the UI by not creating
close buttons in the top bar.
* The server will now attempt to increase the file descriptor limit at
startup.
2021-08-18 20:31:16 +02:00
* Stats are now exported as JSON and formatted on the client side; the
stats URL is now /stats.html rather than just /stats.
2021-05-15 11:46:22 +02:00
2021-04-27 16:14:23 +02:00
27 April 2021: Galène 0.3.4
* Fixed a bug in the loss estimator. We will now reduce the rate more
aggressively when there is loss in the client->serer direction.
* Fixed display of the chat on some devices.
* Exported the group.Description data structure for the sake of external
configuration tools.
2021-04-16 22:31:25 +02:00
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.
2021-03-03 00:05:33 +01:00
3 March 2021: Galène 0.3.2
* Fixed compatibility with versions of Go earlier than 1.15 (thanks to
Michael Ströder).
* Fixed a race condition in the disk writer.
2021-02-26 19:13:15 +01:00
26 February 2021: Galène 0.3.1
2021-03-03 00:05:33 +01:00
* We now notice when the TLS certificate has changed on disk; the
certificate can therefore be rotated without a restart.
2021-02-26 18:11:59 +01:00
* We now generate a self-signed certificate if none is found on disk.
2021-02-18 22:53:05 +01:00
18 February 2021: Galène 0.3
2021-01-14 02:46:57 +01:00
* Implemented the command /muteall. This allows muting all users except
yourself.
2021-01-19 19:11:28 +01:00
* Implemented the autolock and autokick user group options, that cause,
a group to be locked or all users to be kicked out when the last
administrator leaves.
* Implemented client-side filters that are run over the video before it
is sent to the server. A pair of mirroring filters are provided,
which are useful when using a mirror in front of a webcam.
* Included a built-in TURN server, which drastically simplifies
deployment in common cases.
2021-01-14 02:46:57 +01:00
* Implemented testing of TURN servers, on both the client and the server
side. Connectivity will be checked by the server every 12 hours, and
by the client whenever a user uses the /relay-test command.
* Group configurations are now checked at startup, and any failures are
logged. This implies that it is no longer possible to use undefined
keys in group definition files (this is a breaking change).
2021-01-19 19:11:28 +01:00
* Reworked the client API, which is now simpler and more uniform.
2021-01-14 02:46:57 +01:00
* Subgroups can now be public.
2021-02-14 18:48:59 +01:00
* Added an option to disable the mirror view, which is useful when writing.
* Ported file playback to Firefox.
* We now display a friendly error message when the user has disabled
WebRTC under Firefox.
* Implemented renegotiation of down streams, which reduces the amount of
flicker in the user interface.
* Fixed a number of race conditions that could cause audio tracks to
become muted or video tracks to freeze.
2021-01-14 02:46:57 +01:00
2021-01-09 23:53:04 +01:00
9 January 2021: Galène 0.2
2020-12-27 03:02:23 +01:00
2021-01-09 23:53:04 +01:00
* We now work around a limitation of the Go runtime that used to cause
a crash on 32-bit architectures.
* Recording to disk now works on Windows too.
2020-12-27 03:02:23 +01:00
* Error handling has been improved. In particular, group operators now
receive a friendly warning when recording to disk fails for some reason.
* It is now possible to configure a group to use codecs such as VP9 and
H.264. The default is still to use VP8 and Opus, as this yields the
2021-01-03 23:47:01 +01:00
best compatibility across browsers. Only VP8, VP9 and Opus can be
saved to disk.
* The command-line option "-relay-only" can be used to specify that all
media traffic should go through a TURN server.
2021-01-09 23:53:04 +01:00
* It is now possible to generate TURN passwords automatically, which
avoids leaking long-term TURN credentials. See the "credentialType"
value "hmac-sha1" described in README.
2021-01-03 23:47:01 +01:00
* The ICE configuration will now be checked periodically, and new
clients will use an updated configuration.
2021-01-09 23:53:04 +01:00
* The client-server protocol has been reworked to be more symmetric
and more secure. It is now documented in the file README.PROTOCOL.
* The stream abort protocol message is now supported in the client->server
direction, making it possible for the client to reject a stream.
* The delay before sending NACKs has been reduced, which gives a major
boost in video quality.
* The play from disk button is not available when the browser doesn't
support the required API. We used to display a cryptic error message
in that case.
* The command-line option -insecure allows using plain HTTP, which is
useful when running behind a reverse proxy.
2021-01-03 23:47:01 +01:00
* When saving to disk to disk, the keyframe interval has been reduced to 4s.
2021-01-08 14:38:23 +01:00
* We now send keepalives after 55s at most, which should fix issues with
2021-01-09 23:53:04 +01:00
reverse proxies timing out the WebSocket.
2020-12-27 03:02:23 +01:00
2020-12-19 19:55:15 +01:00
19 December 2020: Galène 0.1
* Initial release.