v4.4.6
Fixes
- Fixed self-hosted startup failures caused by an incompatible PHP base image by pinning it to a stable version (#12141).
Full Changelog: v4.4.5...v4.4.6
Full Changelog: v4.4.5...v4.4.6
Full Changelog: v4.4.4...v4.4.5
Full Changelog: v4.4.3...v4.4.4
General
API
Media-Over-QUIC
RTSP
RTMP
HLS
WebRTC
Dependencies
Binaries are compiled from source code by the Release workflow, which is a fully-visible process that prevents any change or external interference in produced artifacts.
Checksums of binaries are also published in a public blockchain by using GitHub Attestations, and they can be verified by running:
ls mediamtx_* | xargs -L1 gh attestation verify --repo bluenviron/mediamtx
You can verify checksums of binaries by downloading checksums.sha256 and running:
cat checksums.sha256 | grep "$(ls mediamtx_*)" | sha256sum --check
Full Changelog: v4.4.2...v4.4.3
The Asterisk Development Team would like to announce
release candidate 2 of asterisk-24.0.0.
The release artifacts are available for immediate download at
https://github.com/asterisk/asterisk/releases/tag/24.0.0-rc2
and
https://downloads.asterisk.org/pub/telephony/asterisk
Repository: https://github.com/asterisk/asterisk
Tag: 24.0.0-rc2
This release resolves issues reported by the community
and would have not been possible without your participation.
Thank You!
Joshua C. Colp (2):
Mike Bradeen (1):
Audiohooks: Fix whisper framehook timer leak and masquerade handling
Author: Mike Bradeen
Date: 2026-09-25
Resolves several issues with the framehook added to allow whispering without
an underlying stream.
The timer is now owned by the audiohook list rather than the framehook. It is
retired on both channels during a masquerade and recreated when the audiohook(s)
are moved.
If the timer cannot be started, whisper audio is still mixed into the outbound
media as it was previously (requiring an underlying stream.)
An audiohook that cannot be moved to the new channel is now left DONE so that
its owner does not wait on it forever.
Resolves: #2134
DeveloperNote: ast_channel_fd_add() now returns -1 if it fails to allocate
space for the descriptor.
extstate/pjsip: Handle lack of or late loading of presence state.
Author: Joshua C. Colp
Date: 2026-09-25
The extension state implementation is stateful resulting in state
not being updated if a presence state provider does not publish an
update after loading. To handle providers which don't do this we
query for updated state if we are asked for it and the existing
state is invalid. This ensures that if the presence state provider
is loaded later we will get the updated state when asked.
The func_presencestate module is written to publish the persisted
custom presence states at load time. This failed for entries with
a not_set state as this resulted in querying the presence provider
that was not yet registered. The provider is now registered before
this ensuring the update can be published.
This change also fixes an issue in PJSIP where a SUBSCRIBE for a
hint that had an invalid presence state configuration would not
send an initial NOTIFY. We now treat an invalid presence state as
not set instead.
Fixes: #2179
extstate: Include causing device channel details in legacy callbacks.
Author: Joshua C. Colp
Date: 2026-09-29
When a legacy extension state callback registers it can optionally
do so in a way that it will receive the channel(s) that have caused
a device to ring. This is used in PJSIP for the dialog-info+xml
support so that phones can display who is calling the monitored
extension.
An issue was introduced in the extension state rewrite where this
did not occur for the actual device that caused the extension state
update. It was only being done for additional devices that could be
involved. This has been fixed so that it is now done for the causing
device.
Fixes: #2186
The Asterisk Development Team would like to announce
release candidate 2 of asterisk-23.6.0.
The release artifacts are available for immediate download at
https://github.com/asterisk/asterisk/releases/tag/23.6.0-rc2
and
https://downloads.asterisk.org/pub/telephony/asterisk
Repository: https://github.com/asterisk/asterisk
Tag: 23.6.0-rc2
This release resolves issues reported by the community
and would have not been possible without your participation.
Thank You!
Joshua C. Colp (2):
Mike Bradeen (1):
Audiohooks: Fix whisper framehook timer leak and masquerade handling
Author: Mike Bradeen
Date: 2026-09-25
Resolves several issues with the framehook added to allow whispering without
an underlying stream.
The timer is now owned by the audiohook list rather than the framehook. It is
retired on both channels during a masquerade and recreated when the audiohook(s)
are moved.
If the timer cannot be started, whisper audio is still mixed into the outbound
media as it was previously (requiring an underlying stream.)
An audiohook that cannot be moved to the new channel is now left DONE so that
its owner does not wait on it forever.
Resolves: #2134
DeveloperNote: ast_channel_fd_add() now returns -1 if it fails to allocate
space for the descriptor.
extstate/pjsip: Handle lack of or late loading of presence state.
Author: Joshua C. Colp
Date: 2026-09-25
The extension state implementation is stateful resulting in state
not being updated if a presence state provider does not publish an
update after loading. To handle providers which don't do this we
query for updated state if we are asked for it and the existing
state is invalid. This ensures that if the presence state provider
is loaded later we will get the updated state when asked.
The func_presencestate module is written to publish the persisted
custom presence states at load time. This failed for entries with
a not_set state as this resulted in querying the presence provider
that was not yet registered. The provider is now registered before
this ensuring the update can be published.
This change also fixes an issue in PJSIP where a SUBSCRIBE for a
hint that had an invalid presence state configuration would not
send an initial NOTIFY. We now treat an invalid presence state as
not set instead.
Fixes: #2179
extstate: Include causing device channel details in legacy callbacks.
Author: Joshua C. Colp
Date: 2026-09-29
When a legacy extension state callback registers it can optionally
do so in a way that it will receive the channel(s) that have caused
a device to ring. This is used in PJSIP for the dialog-info+xml
support so that phones can display who is calling the monitored
extension.
An issue was introduced in the extension state rewrite where this
did not occur for the actual device that caused the extension state
update. It was only being done for additional devices that could be
involved. This has been fixed so that it is now done for the causing
device.
Fixes: #2186
The Asterisk Development Team would like to announce
release candidate 2 of asterisk-22.12.0.
The release artifacts are available for immediate download at
https://github.com/asterisk/asterisk/releases/tag/22.12.0-rc2
and
https://downloads.asterisk.org/pub/telephony/asterisk
Repository: https://github.com/asterisk/asterisk
Tag: 22.12.0-rc2
This release resolves issues reported by the community
and would have not been possible without your participation.
Thank You!
Joshua C. Colp (2):
Mike Bradeen (1):
Audiohooks: Fix whisper framehook timer leak and masquerade handling
Author: Mike Bradeen
Date: 2026-09-25
Resolves several issues with the framehook added to allow whispering without
an underlying stream.
The timer is now owned by the audiohook list rather than the framehook. It is
retired on both channels during a masquerade and recreated when the audiohook(s)
are moved.
If the timer cannot be started, whisper audio is still mixed into the outbound
media as it was previously (requiring an underlying stream.)
An audiohook that cannot be moved to the new channel is now left DONE so that
its owner does not wait on it forever.
Resolves: #2134
DeveloperNote: ast_channel_fd_add() now returns -1 if it fails to allocate
space for the descriptor.
extstate/pjsip: Handle lack of or late loading of presence state.
Author: Joshua C. Colp
Date: 2026-09-25
The extension state implementation is stateful resulting in state
not being updated if a presence state provider does not publish an
update after loading. To handle providers which don't do this we
query for updated state if we are asked for it and the existing
state is invalid. This ensures that if the presence state provider
is loaded later we will get the updated state when asked.
The func_presencestate module is written to publish the persisted
custom presence states at load time. This failed for entries with
a not_set state as this resulted in querying the presence provider
that was not yet registered. The provider is now registered before
this ensuring the update can be published.
This change also fixes an issue in PJSIP where a SUBSCRIBE for a
hint that had an invalid presence state configuration would not
send an initial NOTIFY. We now treat an invalid presence state as
not set instead.
Fixes: #2179
extstate: Include causing device channel details in legacy callbacks.
Author: Joshua C. Colp
Date: 2026-09-29
When a legacy extension state callback registers it can optionally
do so in a way that it will receive the channel(s) that have caused
a device to ring. This is used in PJSIP for the dialog-info+xml
support so that phones can display who is calling the monitored
extension.
An issue was introduced in the extension state rewrite where this
did not occur for the actual device that caused the extension state
update. It was only being done for additional devices that could be
involved. This has been fixed so that it is now done for the causing
device.
Fixes: #2186
The Asterisk Development Team would like to announce
release candidate 2 of asterisk-20.22.0.
The release artifacts are available for immediate download at
https://github.com/asterisk/asterisk/releases/tag/20.22.0-rc2
and
https://downloads.asterisk.org/pub/telephony/asterisk
Repository: https://github.com/asterisk/asterisk
Tag: 20.22.0-rc2
This release resolves issues reported by the community
and would have not been possible without your participation.
Thank You!
Joshua C. Colp (2):
Mike Bradeen (1):
Audiohooks: Fix whisper framehook timer leak and masquerade handling
Author: Mike Bradeen
Date: 2026-09-25
Resolves several issues with the framehook added to allow whispering without
an underlying stream.
The timer is now owned by the audiohook list rather than the framehook. It is
retired on both channels during a masquerade and recreated when the audiohook(s)
are moved.
If the timer cannot be started, whisper audio is still mixed into the outbound
media as it was previously (requiring an underlying stream.)
An audiohook that cannot be moved to the new channel is now left DONE so that
its owner does not wait on it forever.
Resolves: #2134
DeveloperNote: ast_channel_fd_add() now returns -1 if it fails to allocate
space for the descriptor.
extstate/pjsip: Handle lack of or late loading of presence state.
Author: Joshua C. Colp
Date: 2026-09-25
The extension state implementation is stateful resulting in state
not being updated if a presence state provider does not publish an
update after loading. To handle providers which don't do this we
query for updated state if we are asked for it and the existing
state is invalid. This ensures that if the presence state provider
is loaded later we will get the updated state when asked.
The func_presencestate module is written to publish the persisted
custom presence states at load time. This failed for entries with
a not_set state as this resulted in querying the presence provider
that was not yet registered. The provider is now registered before
this ensuring the update can be published.
This change also fixes an issue in PJSIP where a SUBSCRIBE for a
hint that had an invalid presence state configuration would not
send an initial NOTIFY. We now treat an invalid presence state as
not set instead.
Fixes: #2179
extstate: Include causing device channel details in legacy callbacks.
Author: Joshua C. Colp
Date: 2026-09-29
When a legacy extension state callback registers it can optionally
do so in a way that it will receive the channel(s) that have caused
a device to ring. This is used in PJSIP for the dialog-info+xml
support so that phones can display who is calling the monitored
extension.
An issue was introduced in the extension state rewrite where this
did not occur for the actual device that caused the extension state
update. It was only being done for additional devices that could be
involved. This has been fixed so that it is now done for the causing
device.
Fixes: #2186
Full Changelog: v4.4.1...v4.4.2
SCHEDULED_JOBS_DISPATCH_MODE to select sequential or concurrent schedule dispatch. Self-hosted instances used sequential dispatch by default to reduce CPU and memory use; cloud instances kept concurrent dispatch.Full Changelog: v4.4.0...v4.4.1
This release adds built in traffic analytics for Traefik and Caddy, experimental support for SQLite as a database, readable container names with a configurable container prefix, third-party secret managers, Cloudflare DNS management, OpenID Connect sign-in, GitHub Actions runners on build servers, and Docker registry logins. It also includes many fixes.
|
|
|
Container name prefix for generated names (#11704)
custom_container_name_prefix in the API. It is slugified, limited to 30 characters, and unique per server. Rolling updates keep working compared to the custom container name (consistent mode) which loses rolling updates.| before | after | |
|---|---|---|
| single container app (prefix: shop-api) | k9p2m4x7q1w3e5r6t8y0u2i4-20260908T141530 |
shop-api-20260908T141530 |
compose service web (prefix: shop-api) |
web-k9p2m4x7q1w3e5r6t8y0u2i4-20260908T141530 |
web-shop-api-20260908T141530 |
Split action buttons (#11409)
Autofocus on auth forms (#11324)
Third-party secret managers (#11474)
{{vault.KEY}} references are resolved during deployment and database start. Values are never stored in Coolify's database and are redacted from deployment logs.Team audit log (#11462, #11788)
GET /audit-events in the API.Database import API (#11699)
POST /databases/{uuid}/imports/uploads, POST /databases/{uuid}/imports, GET /databases/{uuid}/imports/{activity_id}, and the same under /services/{uuid}/databases/{database_uuid}/imports.write permission. An import from a server path also needs deploy.Cloudflare integration tokens (#11359)
Cloudflare DNS record management (#11699)
OpenID Connect single sign-on (#10543)
https://login.microsoftonline.com/<tenant ID>/v2.0 as the issuer URL and add the optional ID token claims email and xms_edov to the app registration. xms_edov counts as a verified email.Alpine Linux server support (#6189)
apk.Copy environment variable values (#11379)
$SERVICE_* references resolve to their actual value, except references to locked shared variables. Locked variables have no copy button.Named volumes (#7591)
Server roles for deployments and builds
server_role in the API. The deprecated is_build_server field still works.GitHub Actions self-hosted runners (beta) (#12054)
Docker registry logins (#12048)
docker login on the server and does not store the token.GET /servers/{uuid}/registries, POST /servers/{uuid}/registries, POST /servers/{uuid}/registries/{registry}/check, and DELETE /servers/{uuid}/registries/{registry}.Docker images page (#11689)
Traefik ACME certificates (#12015)
acme.json on the new TLS Certificates page in the server's Proxy menu. Deleting does not revoke the certificate, and the server shows that the proxy needs a restart.acme.json before every change and keeps the last 10 backups, which can be restored or deleted on the same page.Account deletion (#12088)
Preview deployments API
GET /applications/{uuid}/previews and GET /applications/{uuid}/previews/{pull_request_id} return preview deployments. POST /applications/{uuid}/previews opens or redeploys the preview of a pull request and needs the deploy permission.Reopen the live deployment log (#11783)
Application settings filter (#11783)
Use variables such as ${NETWORK:-coolify} or ${COMPOSE_PROJECT_NAME}_default in Compose network names of applications and services, including a service's networks: list. A network name that is a single variable is added as an editable environment variable.
Delete a server from its cloud provider (Hetzner, Vultr, or DigitalOcean) through the API with delete_from_provider=true on DELETE /servers/{uuid}. (#12026)
Give additional users access to the Horizon dashboard with the HORIZON_ALLOWED_EMAILS environment variable (#9354)
Show pending team invitations on the dashboard.
Test S3 storages that were marked unusable again every hour, so they become usable on their own once the connection works.
Generate a random manual webhook secret with one click.
Show a warning icon on the server Proxy menu when the proxy is not running.
Link the Healthcheck row in the status summary of applications and databases to the healthcheck page.
Add a favicon, an Apple touch icon, and a web app manifest.
Add OAuth settings to auto-join new OAuth users to the root team and to disable password registration while OAuth is on. The login page then shows "Only OAuth registration is enabled."
Add a shared copy component which is used across resource (#11368)
coolify-realtime (Soketi) container is no longer used; existing proxy routes and port settings keep working, and a soketi override in docker-compose.custom.yml is still accepted. (#10530, #11935)<uuid>-20260908T141530) instead of HHMMSS plus microseconds (the old suffix is still recognized). (#11702)coolify.applicationUuid, coolify.serviceUuid, coolify.service.subUuid, and coolify.databaseUuid instead of numeric ID labels. Existing containers keep working and get the new labels on the next deploy or restart.replace_existing in the API) restores the previous --clean behavior. PostgreSQL archive restores also skip owners and privileges unless "Keep owners and privileges" (keep_owners) is set. (#11699)restore_mysql_users), and SQLite restores can pick the target file (sqlite_database). The import form shows the exact restore script.php artisan oauth:rekey <provider> --from=<old URL or tenant> so linked accounts keep working.email_verified: true. Add a scope mapping in Authentik under Customization β Property Mappings that returns {"email": request.user.email, "email_verified": True}, and use it on the provider instead of the default email mapping.* allows any Workspace account.REDIS_PASSWORD environment variable sets the server password and the connection URLs. Databases created before this release keep their stored password unless the variable reads a secret manager.[A-Za-z_][A-Za-z0-9_.]*. Existing runtime-only variables with other names, such as my-var, still deploy with a warning and a suggested name, while invalid build-time names stop image builds. (#11917)server_disk_usage_notification_interval_hours in the API. A new alert is sent earlier when usage dropped at least 5 points below the threshold and rises again.SSH_COMMAND_TIMEOUT=0 or an invalid value no longer removes the time limit of remote commands. The default of 3600 seconds is used instead.Host headerPUT /user/profile-information route, which changed the account email without verificationdocker run -e values (#11917)deploy permission for mounts outside it (#11911, #11943, #11944, #11993)read:sensitive permission for the log endpoints and scheduled task output in the APIread:sensitive permissiondeploy permission for instant_deploy in the API and accept only known API token permissions (#11969, #11981)league/commonmark to 2.10.3, which fixes GHSA-8rr7-cvq3-gmfhcustom_internal_name turns consistent naming on, and sending it with is_consistent_container_name_enabled: false returns 422.web-shop-api instead of web-<uuid>.kill -9 on the server with a process ID from the Coolify container./data/coolify.--format templates, are no longer rewritten with sudo.--restart unless-stopped, so Docker restarts it after a crash or reboot.php artisan scheduled:diagnostics no longer changes scheduler state.server.crt and server.key for PostgreSQL, MySQL, MariaDB, Redis, KeyDB, and Dragonfly instead of server.pem, so these databases start again, and the CA file on the server matches the CA that signed the certificate..gz archives instead of piping them into the client, and dump-all MySQL restores emit valid shell environment variables. (#11699)409 in the API). Long imports are no longer cut off by the 10-minute task timeout.external are used as declared instead of being renamed to <uuid>_<name>. Existing resources keep their old volume, the deployment log explains how to switch, and the storage page lists external volumes. Preview deployments keep their own volume.driver, driver_opts, and labels when Coolify renames them (volumes created before the upgrade keep their settings), NFS and CIFS volumes are no longer dropped from a service that has other volumes, and ../ bind sources resolve to the parent directory.GET /applications/{uuid}/logs respects service_name and returns 404 when no running container matches. (#12066)POST /deploy with pull_request_id builds the pull request instead of the base branch for deploy key and public repository applications.422 for invalid input), accept numeric resource limits, and read instant_deploy as a boolean.GET /servers/{uuid}/domains?uuid=<application uuid> filters by application instead of returning 404.PATCH /security/keys/{uuid} instead of PATCH /security/keys.HEAD.docker.io/grafana/grafana. (#10617)& instead of &.git:// repository URL no longer crash when showing commit links./data/coolify, and it waits for the Docker daemon on OpenRC.DELETE../data instead of ./media. (#8791)LISTEN and HUB_URL. (#11647)VIKUNJA_SERVICE_SECRET. (#10331)affine.budibase/database image. (#9828)denoKV to deno-kv, and the old key still works in the API and for existing services.BASE_URL no longer includes the port, which caused CSP errors. (#11682)wget.Show Livewire component and view. (#11615)DuskServiceProvider, and the laravel/dusk dependency. Browser tests use the Pest browser plugin.laravel/nightwatch dependency, the Nightwatch agent service in the Coolify container, and the NIGHTWATCH_ENABLED setting.PROXY_CONNECT_NETWORKS_INTERVAL_SECONDS setting.TrustHosts middleware, which never checked the host.
New uNmINeD development snapshot is available for download!
Changes:
Notes:
Setting up isometric mode:
If you are upgrading from v0.16.x, replace the binary (or run docker pull). If you are upgrading from v0.15.x and below, please read the upgrading documentation for more information on how to upgrade from previous versions.
MaskedEmail with emailDomain fails with forbidden for every domain when the account has addresses on more than one domain.mobilesync), are answered with the Outlook settings instead of error 601.LOGIN and AUTHENTICATE with a wrong, expired or unknown app password or API key are answered with an untagged NO, so clients keep waiting for the command to complete until the connection times out.NO before the connection is closed.DkimManagement task is created for them.PYZOR.match expression are never enforced, including the global queue quota created on first start.LOG, LOG.old.*) grows without limit because log rotation and retention are left at RocksDB defaults.
Full Changelog: v5.0.6...v5.0.7
Security:
Security:
OnClientValidatePassword, or error text and UIDs sent by remote servers) could break out of their string. With either script language, a rule's "Run function" name could carry code. This would allow an attacker to run arbitrary code in the hMailServer process. Values are now escaped, and rule function names may only contain letters, digits and underscores.If you are unable to install this version, disable JScript execution and do not give end-users access to the hMailServer COM API.
Archived hMailServer builds, from 4.1.1 to 5.6.9 build 2607. These versions are no longer supported and are kept for reference only. Use the latest release for new installations.
If you are upgrading from v0.16.x, replace the binary (or run docker pull). If you are upgrading from v0.15.x and below, please read the upgrading documentation for more information on how to upgrade from previous versions.
TLSA records are looked up for every MX host, including hosts whose zone is not DNSSEC signed.PushSubscription created within the verification rate limit window of another one on the same account never receives its PushVerification, since the blocked verification is dropped instead of being sent once the window expires.aud claim is derived from a hand-written parse of the push URL, so a crafted push URL can make the server sign a token for a push service other than the one the request is sent to.Email/import rejects a blobId that refers to a Blob/upload creation id in the same request ("#u0") with Invalid blob id..Email/set with a full mailboxIds object identical to the current mailboxes, together with a keyword change, stores the message with IMAP UID 0, so IMAP clients stop seeing it.outboundMta role stops replying to DATA and to JMAP submissions once about 1024 messages have been queued on it.DATA stage Sieve script does not see headers added by milters or MTA hooks, and discards every milter and MTA hook change when it edits the message.DELETE and switch to chunks only after a timeout.COPY and MOVE fail with NO [CONTACTADMIN] when another session changes the same message at the same time.<Encryption>TLS</Encryption>, which Outlook reads as STARTTLS.
The PostgreSQL Global Development Group announces that the fourth beta release of PostgreSQL 19 is now available for download. This release contains PostgreSQL 19 feature previews ahead of general availability, though some details of the release can change during the beta period.
You can find information about all of the PostgreSQL 19 features and changes in the release notes:
https://www.postgresql.org/docs/19/release-19.html
The next planned release of PostgreSQL 19 is the release candidate, which should occur in early October. Based on testing and evaluation, this means that the PostgreSQL 19 GA may also occur in October. More details will be provided as we move closer to these releases.
This beta release reverted several features that were originally planned for PostgreSQL 19. The PostgreSQL community strongly believes that, first and foremost, PostgreSQL must be reliable. Additionally, the community strives for a predictable release schedule. Because of this, the community chose to remove some features from the PostgreSQL 19 release so they can be potentially be included in a later major release after more time working through the community development and review process.
Your testing and feedback help the community ensure that PostgreSQL 19 upholds our standards of delivering a stable, reliable release of the world's most advanced open source relational database. Please read more about our beta testing process and how you can contribute:
https://www.postgresql.org/developer/beta/
To upgrade to PostgreSQL 19 Beta 4 from an earlier version of PostgreSQL,
you will need to use a strategy similar to upgrading between major versions of
PostgreSQL (e.g. pg_upgrade or pg_dump / pg_restore). For more
information, please visit the documentation section on
upgrading.
Fixes and changes in PostgreSQL 19 Beta 4 include:
FOR PORTION OF
clause.ALTER TABLE ... MERGE PARTITIONS and
ALTER TABLE ... SPLIT PARTITIONS.pg_get_role_ddl(), pg_get_tablespace_ddl(), and
pg_get_database_ddl() functions.LC_COLLATE to C in the postmaster process.REPACK command, including crashes, incorrect
behavior with invalid indexes and materialized views, and several permission
and error-reporting corrections.WAIT FOR command, including a deadlock and clearer
reporting of isolation-level errors.FOREIGN_JOIN list in pg_plan_advice.CREATE PUBLICATION ... EXCEPT.COPY FROM SIMD optimization.pgbench --continue-on-error.Please see the release notes for a complete list of new and changed features:
https://www.postgresql.org/docs/19/release-19.html
The stability of each PostgreSQL release greatly depends on you, the community, to test the upcoming version with your workloads and testing tools to find bugs and regressions before the general availability of PostgreSQL 19. As this is a Beta, minor changes to database behaviors, feature details, and APIs are still possible. Your feedback and testing will help determine the final tweaks on the new features, so please test in the near future. The quality of user testing helps determine when we can make a final release.
A list of open issues is publicly available in the PostgreSQL wiki. You can report bugs using this form on the PostgreSQL website:
https://www.postgresql.org/account/submitbug/
This is the fourth beta release of version 19. The PostgreSQL Project is planning to move to the release candidate portion of the release cycle, and will continue to issue release candidates until PostgreSQL 19 is made generally available. For further information please see the Beta Testing page.
If you have corrections or suggestions for this release announcement, please send them to the pgsql-www@lists.postgresql.org public mailing list.
New uNmINeD development snapshot is available for download!
Changes:
If you are upgrading from v0.16.x, replace the binary (or run docker pull). If you are upgrading from v0.15.x and below, please read the upgrading documentation for more information on how to upgrade from previous versions.
bit_and function.RCPT TO and then rejected at local delivery with 550 5.5.0 Mailbox not found.spf elements per record and the version element of a DMARC aggregate report is written as 1 instead of 1.0.addr-type in Original-Recipient (rfc822;rfc822;user@example.org).TOP msg n counts the n lines from the first byte of the message instead of from the first byte of the body.. is not byte-stuffed.envelope "orcpt" yields the bare address for an ORCPT supplied over SMTP. It now carries the addr-type prefix in every case, as required by RFC 6009._acme-challenge TXT records published for a DNS-01 authorization are never removed.hickory-resolver race that cancels the TCP retry when two nameservers return a truncated response in parallel.email, preferred_username or upn claim are always authenticated against the default directory.failOnTimeout is disabled, so an index whose batches take longer than pollInterval x maxRetries never completes an indexing task and resubmits the same batch indefinitely.Application offline.INCR and EXPIRE as a MULTI/EXEC transaction, whose MOVED redirects collapse into a single EXECABORT that never refreshes the slot map.PING.
General
RTSP
Quantization < 127RTMP
HLS
WebRTC
Dependencies
Binaries are compiled from source code by the Release workflow, which is a fully-visible process that prevents any change or external interference in produced artifacts.
Checksums of binaries are also published in a public blockchain by using GitHub Attestations, and they can be verified by running:
ls mediamtx_* | xargs -L1 gh attestation verify --repo bluenviron/mediamtx
You can verify checksums of binaries by downloading checksums.sha256 and running:
cat checksums.sha256 | grep "$(ls mediamtx_*)" | sha256sum --check
internal: Local Variable: Set value name field, clarifying what is valid input #4467Full Changelog: v5.0.5...v5.0.6
Full Changelog: v4.3.22...v4.3.23
host_path are now rejected.Full Changelog: v4.3.21...v4.3.22