Normale weergave
Distribution Release: SteamOS 3.8.10
v5.49.0
5.49.0 (2026-06-24)
🚀 New feature
- mcp: export defineTool/defineResource/definePrompt builders (#26603)
🔥 Bug fix
- add support for initiallySelectedAssets (#26679)
- homepage dashboard duplicates entries for users with multiple roles (#25860)
- avoid buffering large uploads for MIME detection (#26678)
- throw ValidationError when populate exceeds qs arrayLimit (#25632, #25916)
- push anchor into view to prevent off-screen tooltips (#26303)
- admin: support array of links in StrapiApp.addSettingsLink (#26433)
- admin: admin users logged out mid-session by access-token expiry timer (#26680)
- content-manager: use top-level Core type import in MCP types (#26681)
- content-manager: save draft with Cmd/Ctrl+Enter, publish with Cmd/Ctrl+Shift+Enter (#26621)
- content-manager: reduce MCP relation output to identity-only shape (#26560)
- content-manager: deduplicate MCP tool names when plugin has multiple content types (#26710)
- core/core: mcp misleading lifecycle docs (#26698)
- create-strapi-app: allow pnpm to build better-sqlite3 for SQLite scaffolds (#26675)
- data-transfer: transfer admin menu and auth logos with configuration (#26425)
- database: stop full-schema component_type IN on dynamic zone populate (#26734)
- document-service: preserve published relations from non-dp sources (#26654)
- strapi: default allowedHosts and pin Vite HMR to main server in dev (#26244)
- types: add explicit return types to recursive functions (#26704)
📚 Documentation Changes
- fix spelling typos in content-manager relations guide (#26724)
⚙️ Chore
- removing coderabbit status (#26703)
- core: upgrade package-json to 10.0.1 + rollup interop 'auto' (#26673)
- deps: bump markdown-it from 14.1.1 to 14.2.0 in the richtext-editor-security group across 1 directory (#26688)
- deps: bump dompurify from 3.4.5 to 3.4.9 (#26684)
- deps: bump nodemailer from 8.0.5 to 8.0.9 (#26689)
- deps: bump tar from 7.5.11 to 7.5.16 (#26691)
- deps: bump form-data from 4.0.4 to 4.0.6 (#26692)
- deps: bump anthropics/claude-code-action from 1.0.123 to 1.0.132 (#26727)
- deps: bump piscina from 4.9.2 to 4.9.3 (#26716)
- deps: bump undici from 6.25.0 to 6.27.0 (#26714)
- deps: bump dompurify from 3.4.9 to 3.4.11 (#26719)
- deps-dev: bump @babel/core (#26667)
💅 Enhancement
- upload: add optional replace method to upload providers (#26582)
❤️ Thank You
- akash-dabhi-qed @akash-dabhi-qed
- Andrei L @unrevised6419
- Andrew Bone
- Bassel Kanso @Bassel17
- Ben Irvin
- Giulio Montagner @giu1io
- guoyangzhen
- jasleenkaur-qed42
- Nico André
- Shivam S @BIGSUS24
- Simon Norris @cache-your-dreams
- Travis Swientek @travelton
- Vallabh Mahajan @Vallabh-1504
- Vishal Kumar Singh @singhvishalkr
⚠️ Changes to be aware of
Content Manager keyboard shortcuts
Save a draft with Cmd/Ctrl+Enter (or Cmd/Ctrl+S). Publish with Cmd/Ctrl+Shift+Enter. Since v5.31.3, plain Cmd/Ctrl+Enter published immediately — that shortcut now saves instead. (#26621)
-
Planet Debian
- Freexian Collaborators: Monthly report about Debian Long Term Support, May 2026 (by Santiago Ruano Rincón)
Freexian Collaborators: Monthly report about Debian Long Term Support, May 2026 (by Santiago Ruano Rincón)
The Debian LTS Team, funded by Freexian’s Debian LTS offering, is pleased to report its activities for May.
Activity summary
During the month of May, 21 contributors have been paid to work on Debian LTS (links to individual contributor reports are located below).
The team released 56 DLAs fixing 877 CVEs.
May was a much busier month than usual, especially due to the disclosed vulnerabilities on linux regarding Local Privilege Escalation (LPE), that included public proof-of-concept (PoC) exploits. These reports of course impacted Debian as a whole, and the situation warrants a special mention to the Kernel Team, especially Ben Hutching and Salvatore Bonaccorso, who faced the pace and released linux packages on a weekly basis. On the LTS side, the Front Desk team also triaged a significant flow of high severity CVEs.
It is also important to note that Debian 12 (“bookworm”) will be handed over to the LTS Team on June 11th. If you benefit from Debian, especially during the full 5-year lifecycle, please consider subscribing as a sponsor of Debian LTS: https://www.freexian.com/lts/debian/.
Moreover, Debian 11 (“bullseye”) will reach the end of the Debian LTS period on August 31st. After that, Freexian will continue the security support under the Extended LTS offer.
The team published several notable updates:
- As mentioned above, several exploitable LPE vulnerabilities in linux were published during May. Ben released the following DLAs for the Debian LTS versions:
- DLA 4560-1 for linux (5.10)
- DLA 4561-1 for linux-6.1
- DLA 4572-1 for linux (5.10)
- DLA 4574-1 for linux-6.1
- DLA 4587-1 for linux (5.10)
- DLA 4588-1 for linux-6.1
- DLA 4606-1 for linux (5.10)
- DLA 4607-1 for linux-6.1
- exim update (DLA-4580-1), prepared by Thorsten, to address a vulnerability that may result in remote code execution.
- gnutls28 update (DLA-4595-1) by Guilhem Moulin, fixes several vulnerabilities that may result in execution of arbitrary code, information leak, authentication bypass, among other impacts.
- krb5 updates released as DLA-4603-1, fixing two vulnerabilities that may yield to a denial of service. Updated prepared by Emmanuel Arias
- lemonldap-ng (DLA-4602-1), released by Abhijith PA, fixing multiple vulnerabilities
- Two imagemagick updates (DLA-4559-1 and DLA-4609-1), prepared by Bastien Roucariès, fixing several vulnerabilities
- openjdk-11 and openjdk-17 updates (DLA-4566-1 and DLA-4565-1), both prepared by Emilio, to fix seven vulnerabilities.
- php7.4 update (DLA-4586-1) to fix six vulnerabilities that could result in remote code execution, information disclosure or denial of service. Update prepared by Guilhem Moulin.
- python3.9 update (DLA-4583-1), prepared by Arnaud Rebillout, addressing multiple vulnerabilities.
Contributions from outside the LTS Team:
We are greatly thankful for the contributions from people outside the LTS Team:
- Colin Watson prepared an OpenSSH update, that was released by Santiago as DLA-4584-1.
- Thomas Goirand handled a keystone update, whose advisory was done by Santiago and released as DLA-4611-1.
- Christopher Obbard kindly prepared a sentry-python update, released as DLA-4612-1.
- Christoph Goehre made two thunderbird updates (DLA-4562-1 and DLA-4582-1). As is customary, Emilio released the advisories.
The LTS Team has also contributed with updates to the latest Debian releases:
- Andreas proposed a firewalld update for bookworm to fix a local issue that may result in bypass control rules.
- Andreas proposed atril updates for trixie and bookworm.
- Arnaud did a python3.11 upload for bookworm.
- Arnaud proposed libarchive updates for trixie and bookworm.
- Arnaud completed the systemd update for bookworm.
- Bastien completed the uploads of gpsd for bookworm. He also did an upload of apache2 for bookworm.
- Emmanuel uploaded updates of libexif for trixie and bookworm
- Jochen Sprickerhof prepared pyjwt update for trixie and bookworm, released as DSA-6259-1.
- Lukas Märdian prepared trixie and bookworm updates for nghttp2, released as DSA-6266-1.
- Markus prepared updates of tomcat11 and tomcat10, released as DSA-6329-1 (for trixie) and DSA-6328-1 (for trixie and bookworm), respectively.
- Continuing the work to replace the unmaintained p7zip fork with 7zip, Sylvain prepared trixie and bookworm updates of 7zip.
- Thorsten completed the uploads of zvbi, taglib and libuev to bookworm and did an upload of libcoap3 for wtrixie.
- Tobi prepared libpng1.6 updates for trixie and bookworm, released as DSA-6263-1.
Moreover, thanks to our partnership with Catalyst, it has been possible to extend the support for Samba 4.17, the version shipped with Debian 12. In May, several vulnerabilities were disclosed, and their patches were prepared by Catalyst. For Debian 12, the update was prepared by the Samba maintainer and released as DSA-6297-1.
Individual Debian LTS contributor reports
- Abhijith PA
- Andreas Henriksson
- Andrej Shadura
- Arnaud Rebillout
- Bastien Roucariès
- Ben Hutchings
- Carlos Henrique Lima Melara
- Chris Lamb
- Daniel Leidert
- Emmanuel Arias
- Emilio Pozuelo Monfort
- Guilhem Moulin
- Jochen Sprickerhof
- Lee Garrett
- Lucas Kanashiro
- Lukas Märdian
- Markus Koschany
- Santiago Ruano Rincón
- Sylvain Beucler
- Thorsten Alteholz
- Tobias Frost
Thanks to our sponsors
Sponsors that joined recently are in bold.
- Platinum sponsors:
- Toshiba Corporation (for 128 months)
- Civil Infrastructure Platform (CIP) (for 96 months)
- VyOS Inc (for 61 months)
- Gold sponsors:
- F. Hoffmann-La Roche AG (for 139 months)
- CONET Deutschland GmbH (for 122 months)
- University of Oxford (for 78 months)
- EDF SA (for 50 months)
- Dataport AöR (for 25 months)
- CERN (for 23 months)
- Silver sponsors:
- Domeneshop AS (for 143 months)
- Nantes Métropole (for 137 months)
- Akamai - Linode (for 133 months)
- Univention GmbH (for 129 months)
- Université Jean Monnet de St Etienne (for 129 months)
- Ribbon Communications, Inc. (for 123 months)
- Exonet B.V. (for 113 months)
- Leibniz Rechenzentrum (for 107 months)
- Ministère de l’Europe et des Affaires Étrangères (for 91 months)
- Dinahosting SL (for 78 months)
- Upsun Formerly Platform.sh (for 72 months)
- Moxa Inc. (for 66 months)
- sipgate GmbH (for 64 months)
- OVH US LLC (for 62 months)
- Tilburg University (for 62 months)
- GSI Helmholtzzentrum für Schwerionenforschung GmbH (for 53 months)
- THINline s.r.o. (for 26 months)
- Copenhagen Airports A/S (for 20 months)
- Conseil Départemental de l’Isère (for 6 months)
- Bronze sponsors:
- Seznam.cz, a.s. (for 144 months)
- Evolix (for 143 months)
- Linuxhotel GmbH (for 141 months)
- Intevation GmbH (for 140 months)
- Daevel SARL (for 139 months)
- Megaspace Internet Services GmbH (for 138 months)
- Greenbone AG (for 137 months)
- NUMLOG (for 137 months)
- WinGo AG (for 136 months)
- Entr’ouvert (for 128 months)
- Adfinis AG (for 125 months)
- Plat’Home (for 122 months)
- Laboratoire LEGI - UMR 5519 / CNRS (for 120 months)
- Tesorion (for 120 months)
- Bearstech (for 111 months)
- LiHAS (for 111 months)
- Catalyst IT Ltd (for 106 months)
- Demarcq SAS (for 100 months)
- Université Grenoble Alpes (for 86 months)
- TouchWeb SAS (for 78 months)
- SPiN AG (for 75 months)
- CoreFiling (for 71 months)
- Observatoire des Sciences de l’Univers de Grenoble (for 62 months)
- Tem Innovations GmbH (for 57 months)
- WordFinder.pro (for 57 months)
- CNRS DT INSU Résif (for 56 months)
- Soliton Systems K.K. (for 51 months)
- Alter Way (for 48 months)
- SOBIS Software GmbH (for 23 months)
- Tuxera Inc. (for 15 months)
- OPM-OP AS (for 6 months)
Hype te koop | POM S11E39
Wat als alles wat je deze week leuk, belangrijk of de moeite waard vond, gewoon gekocht was? Van de Superbowl-show van Bad Bunny tot Sydney Sweeney en haar “good jeans”, alles wordt geëngineerd door clipping farms en legers fake accounts. Het liefst in twee ruziënde kampen tegelijk, zodat journalisten zich er als useful idiots op storten. Bij Bad Bunny kwam een kwart van alle 3,7 miljoen posts van minder dan vier procent van de accounts. Reken maar uit.
Het ongemakkelijke gevolg: bereik is dus te koop, spotgoedkoop zelfs, en daarmee bijna niks meer waard. FVD speelt het spel al meedogenloos, terwijl de rest nog cringe ministersfilmpjes op LinkedIn zet. En precies daar komt Ernst-Jan, oftewel DutchProBlogger, met zijn vaste advies waar hij al twintig jaar gelijk in heeft: begin nou een nieuwsbrief, begin nou een podcast. Want als content bijna gratis wordt, blijft er nog één ding over dat niemand kan kopen: vertrouwen. Tim Ferriss zag zijn boekverkoop door AI met 57 procent kelderen en valt terug op duizend echte fans. De moraal is even simpel als urgent: het venster om je eigen publiek op te bouwen sluit.
Sterkte. En pas op voor Alexander Slopping.
Deze aflevering wordt mede mogelijk gemaakt door Denkproducties. Schrijf je via denkproducties.nl/pom in voor het Amsterdam Business Forum en je krijgt als POM-luisteraar automatisch toegang tot een exclusieve sessie met Seth Godin.
Door lezen over Carbon Equity, dat investeert in bedrijven die het klimaat redden, zoals Carbon Cure dat CO2 opslaat in beton? Kijk dan op carbonequity.com
En dan nog zelfpromo in relatie tot POM: bij AI Report draait een webinarreeks over hoe je een persoonlijk kennissysteem bouwt waar je taalmodel uit kan putten. Drie hoorcolleges, voor twaalf euro ben je al binnen via aireport.nl
This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit www.pom.show
Extended Stable Update for Desktop
The Extended Stable channel has been updated to 148.0.7778.280 for Windows and Mac which will roll out over the coming days/weeks.
Stable Channel Update for Desktop
The Stable channel has been updated to 149.0.7827.196/197 for Windows and Mac and 149.0.7827.196 for Linux, which will roll out over the coming days/weeks. A full list of changes in this build is available in the Log
Interested in switching release channels? Find out how here. If you find a new issue, please let us know by filing a bug. The community help forum is also a great place to reach out for help or learn about common issues.
Daniel Yip
Google Chrome
-
nginx
- njs-1.0.0 version has been released, deprecating the njs engine in favor of QuickJS, aligning exception classes between the engines, and hardening ngx.fetch() request validation.
njs-1.0.0 version has been released, deprecating the njs engine in favor of QuickJS, aligning exception classes between the engines, and hardening ngx.fetch() request validation.
njs-1.0.0 version has been released, deprecating the njs engine in favor of QuickJS, aligning exception classes between the engines, and hardening ngx.fetch() request validation.
South Dakota: Badlands
Today, we would like to show you a preview of one of the most famous and unique landscapes we have been recreating for the South Dakota DLC for American Truck Simulator - the beautiful Badlands National Park!
Situated along the edge of the Great Plains in southwestern South Dakota, Badlands National Park spans 244,000 acres of dramatically eroded buttes, pinnacles, and spires, alongside the largest protected mixed-grass prairie in the United States.
But why is such a stunning area named Badlands? For hundreds of years, the Lakota people have called it "mako sica", which translates to "bad lands". Then, early French fur trappers called the area "les mauvaises terres à traverser" (bad lands to travel across). Because when it rains there, the wet clay becomes sticky, and the jagged canyons also make it hard to navigate. The winters are cold and windy, and the summers are hot and dry. But it could have had a very different name, as in 1922, when Badlands was first proposed as a national park, the suggested name was Wonderland National Park.
The Badlands contain one of the world's richest fossil beds, preserving evidence of ancient species such as horses and rhinos that once roamed the region. Today, the area is home to bison, bighorn sheep, prairie dogs, and a diverse range of other plant and animal life. As players enter this region in the game, they will be immediately greeted by roaming bison and striking rock formations.
As you drive further, you'll come across iconic places like Pinnacles Overlook, Yellow Mounds Overlook, and the Fossil Trail.
"I fell in love with this place the first time we visited it on our research trip; it's like stepping into another world, where lush green grass blends with the colorful local soil and rolling hills," says Draky, our map designer who worked on recreating this national park for our game.
One thing you may notice in this region is the sudden transition from expansive plains and gentle hills to a dramatic, iconic landscape characterized by rugged formations and large wildlife such as the bison. As the seasons change, the Badlands vegetation undergoes significant shifts in color throughout the year. The version depicted in the game reflects how the landscape appears between July and August, in which the game is set.
Draky also shares her insight on how difficult it was to transfer this wonderful area into the scale of American Truck Simulator, with a message to our community: "The biggest challenge was the initial layout planning, as the space is quite limited, but I'm still very happy with the result, and I'm sure you'll love experiencing this place every time you pass through."
We hope you are looking forward to exploring the Badlands. If so, make sure to add the South Dakota DLC to your Steam wishlist!
Also, remember to follow us on X/Twitter, Facebook, Instagram, Bluesky, and YouTube for all the latest news from this map expansion and other American Truck Simulator information, or sign up for our newsletter to stay informed. Keep on truckin'!
Minecraft 26.3-snapshot-1 (snapshot) Released
Firefox
Fixed
-
Fixed some Settings section headings showing placeholder text instead of the translated name in certain languages. (Bug 2047983)
-
Fixed New Tab content not matching the browser's display language after it was changed. (Bug 2046945)
-
Fixed a regression that could break playback of some MP4 video files. (Bug 2047467)
-
Fixed a performance regression that could slow down sites performing many encryption and decryption operations at once, such as Proton Drive. (Bug 2046401)
-
Reference link to 152.0.1 release notes.

The Matter upgrade you’ve been waiting for
It started as a passion project. Yet in a few years matter.js has grown beyond my wildest expectations, becoming the backbone of the open source Matter ecosystem, and powering everything from Homebridge to openHAB, and even some commercial products.
Ten months ago, I joined forces with the Open Home Foundation to work full time as Lead Developer of Matter. Shortly after, I donated matter.js to the foundation – giving it a new home where it would be safeguarded for the future. Together we announced our plans to take Matter support in Home Assistant in a completely new direction: we set out to rebuild the Open Home Foundation Matter Server – the engine that powers Matter in Home Assistant – on matter.js.
After four months of beta testing, with our community fixing bugs and contributing new features along the way, today we’re thrilled to present the newest version of Matter for Home Assistant! 🎉
The Open Home Foundation invests in important technology to make open alternatives possible, and our work is funded in part by everyone who subscribes to Home Assistant Cloud and buys official hardware from our commercial partners. The launch of a new Matter experience in Home Assistant shows what’s possible with your support. 💪
Presenting the matter.js plans at the Connectivity Standards Alliance (CSA) Member Meeting in November 2025 (right), and returning in March 2026 as an Outstanding Contributor Award recipient (left).
Serving up more with matter.js
For those new to matter.js, it’s an open source TypeScript implementation of the Matter standard. I built it to give developers and power users more speed and flexibility, and to make Matter better suited for open source development across the millions of homes that use Home Assistant. By running Matter in Home Assistant on matter.js, all of those benefits now flow directly into the platform.
This major update brings greater stability for Matter in Home Assistant, fewer bugs, and faster start-up and recovery. It also comes with a brand new visualization feature to help you understand your network (more on that below 👀). And by upgrading to the Matter 1.5.1 specification (1.6 coming soon!), we’re better equipped to improve support for all new Matter device types, such as cameras, doorbells, and closures.
Coupled with an updated OpenThread Border Router (OTBR) app to support Thread 1.4 in Home Assistant, these changes mark important steps in making Matter work more reliably within your setup, now and into the future. But don’t just take our word for it – here’s what our beta testers are saying:
"The new Matter Server has evolved into the ultimate Matter controller and troubleshooting tool for power users, backed by an incredible open community that continues to push the standard forward."
- Ward Zhou, Smart Home Journalist"The new matter.js server is fantastic. I love all the new possibilities it offers. In particular, the new Thread mesh view is unique and helps keep the Thread network under control at all times. The icing on the cake is that Home Assistant now supports Matter 1.5.1. This means Home Assistant's Matter implementation is once again at the forefront of the industry."
- hoppel118, Home Assistant Discord Member"Joining the beta program was born as a last resort to get my Matter/Thread network going. But it was a great experience! While I'm not at all a power user nor programmer, I could contribute at some degree. The very short feedback loop and close involvement of the developer made this a nice (and easy!) way to contribute to the development of the Open Home."
- Haapster, Home Assistant Discord MemberIt was just a matter of time
When Matter emerged a few years ago, we immediately saw its potential to shape the industry for the better. As an open standard that lets smart devices from different brands speak the same language, it represents the kind of interoperable tech the Open Home Foundation exists to champion. So we set out to build on it.
Just weeks after Matter’s official launch in 2022, we added the Matter integration to Home Assistant, and in 2025 both Home Assistant and the Open Home Foundation Matter Server were officially certified by the Connectivity Standards Alliance. That server was built with Python and the official C++ Matter SDK – a solid starting point, but one that couldn’t keep pace with our open source ambitions.
Matter now runs in 38% of Home Assistant instances, and ranks twelfth among all integrations – a clear sign of where the smart home world is heading. We want that future to have fewer compatibility headaches, more device choice, and a smart home that just works. This update to Matter support in Home Assistant takes a huge step toward that vision.
An easy switch
The new Matter experience in Home Assistant is delivered through the “Matter Server app 9.0” – a fully compatible drop-in replacement for the previous Python-based server. After you’ve updated the app, it will automatically migrate your data on the first start, and work in exactly the same way that the previous server did.
Faster, smarter, and more secure
The real benefits kick in with every subsequent server start and device reconnection. Thanks to a range of optimizations, devices now come back online much faster, networks are more responsive, and over-the-air updates are more reliable.
Beyond performance, the new server also tightens security. When commissioning new devices, uncertified devices with an official development/test certificate can no longer be added out of the box, ensuring no malicious devices are added to your Matter network without your knowledge. Additionally, the new server checks certificate revocation data during commissioning, adding another layer of protection.
A clearer view
While the Matter Server’s web UI received a range of new and improved features, the ability to visualize your Thread or Wi-Fi networks steals the show.
Your whole network, at a glance.
The visualization feature draws details from your commissioned Matter devices to map the network and offer insights into connection quality. Each device appears as a node, with small icons indicating its role in the network – whether it’s a leader (crown), a router (arrows), a sleepy, or another end device. The color of the connections between nodes reflects connection quality: green is strong, orange medium, red weak, and gray no signal (for those that want a deeper dive, check out our GitHub documentation).
This is especially helpful for Thread networks, where there can be multiple “hops” between a device and the border router, and the devices themselves decide how data is routed. Where possible, border routers are also discovered and displayed, giving you a fuller picture of how your network is structured. The visualization also helps with Wi-Fi devices, making it easier to see which device is connected to which access point, and at what signal quality.
A foundation for what’s next
Graduating Home Assistant to matter.js wouldn’t have been possible without our community, who’ve helped grow Home Assistant into one of the biggest smart home platforms in the world.
With these new changes, we’re better placed than ever to make Matter in Home Assistant more approachable for all. Head to the Open Home Foundation roadmap to add your voice to what comes next. We can’t wait to keep building together ⚒️.
Dirk Eddelbuettel: tl-0.0.1 on CRAN: New Package
A new small package of mine just hit CRAN. The tl package wraps the (also very new) rspdlite package (announced last week) to offer a lightweight and consistent logging interface from both R and C++ that is also ‘tiny, fast, capable’ thanks to rspdlite.
The rspdlite
announcement is a good place to get a first glimpse at that package;
the upstream spdlite
repo has all the details (for the C++ side of things). With tl we follow the same idea
that our [spdl][spdl] package introduced: a simple consistent interface
via just the tl:: prefix and the appropropriate logging
level. In other words
tl::debug("Alert -- foo is at '{}'", foo) will work from
both R and C++ (given a variable foo, and in the case of
C++ an extra semicolon). Just give it a try, and see how it goes. The
package is still young and small.
The NEWS entry for this release is also very simple and just announces that we have a release. More details are in the ChangeLog and the GitHub repo.
Changes in version 0.0.1 (2025-06-17)
- Initial CRAN upload
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can sponsor me at GitHub.
QNAP bekroond met de 2026 MSP Today Product of the Year Award
OBS Studio 32.2.0 Beta 2
Beta 2 Changes
- Fixed a CI deployment issue. There are no application changes since Beta 1.
32.2 New Features
- Replaced add source dropdown with new dialog [Warchamp7]
- Improved FPS selector UX [jcm93]
- Added missing file support for filters [exeldro]
- Added ability for plugins to set custom icons for new source types [cg2121]
- Included .webp files when adding a directory to Image Slide Show source [TarunCore]
- Added copy paste functions to frontend API [exeldro]
- Added filter to compose SDR into HDR [jpark37]
- Added delete as a hotkey to delete sources on macOS [PatTheMav]
- Added dynamic bitrate support to multitrack video [lexano-ivs]
32.2 Changes
- Forced Intel-based installations to update to Apple Silicon version on macOS [PatTheMav]
- This change means that OBS Studio versions built for Intel-based Macs but running on Apple Silicon Macs will automatically update to OBS Studio built for Apple Silicon Macs. If an installation was using third-party plugins, those plugins will no longer load until replaced with Apple Silicon versions.
- Fixed audio mixer state getting out of sync when changing settings via websockets or plugins [Warchamp7]
- Added theming for checked QToolButtons [glikely]
- Improved OpenGL performance slightly on low-end machines [kkartaltepe]
- Set minimum size for color source to 1 pixel [exeldro]
- Added minimum width to spinboxes [Warchamp7]
- Disallowed overwriting the crash handler [sebastian-s-beckmann]
- Applied process mitigation policies for Windows [notr1ch]
- Adjusted description of multitrack video [jhnbwrs]
- Changed new capture devices to use fallback frame rate by default [PatTheMav]
- Improved DLL loading behavior on Windows [notr1ch]
- Limited multitrack video config to Custom service [PatTheMav]
32.2 Bug Fixes
- Fixed OAuth and dock state save corruption [PatTheMav]
- Fixed group bounds not resizing when removing items [howellrl]
- Fixed canvas mixes not being restored after video reset [dsaedtler]
- Fixed some erroneous crashes during shutdown [Warchamp7]
- Fixed display capture sometimes capturing black after a duplicator failure [ThrowTop]
- Fixed color of controls dock output buttons in System theme [shiina424]
- Fixed virtual camera reset failures [stephematician]
- Fixed potential crash when user discards changes in the settings window [suogesi]
- Fixed incorrect return value in virtualcam filter [xtfo]
- Fixed source toolbar buttons not working after dragging a source into a group [Warchamp7]
- Fixed properties hint icon spacing [Warchamp7]
- Fixed potential crash when a video device reconnects on macOS [jcm93]
- Fixed an issue where PipeWire could fail on NVIDIA GPUs [hoshinolina]
- Fixed obs_canvas_get_video_info returning incorrect framerate [dsaedtler]
32.2 Deprecations
- Deprecated obs_properties_add_button [sebastian-s-beckmann]
Checksums
OBS-Studio-32.2.0-beta2-Sources.tar.gz: 2b643fba022a7a7b512522b598dfa587fd87be071e43ff345cd73608f7bdae13
OBS-Studio-32.2.0-beta2-Ubuntu-24.04-x86_64-dbsym.ddeb: ba2ce12e1a220c6aa5d00e23bc10bfead82dae263ac1c213a81e9ac88e122403
OBS-Studio-32.2.0-beta2-Ubuntu-24.04-x86_64.deb: bc02de836d115323c87eee5fca17c1bc3831ef5c1fc64709aeabd8dbce32785a
OBS-Studio-32.2.0-beta2-Ubuntu-26.04-x86_64-dbsym.ddeb: 84956ff43ffec70581db566adbfd29942bab783bc98a92620ac73fdc6f3e2006
OBS-Studio-32.2.0-beta2-Ubuntu-26.04-x86_64.deb: 1816bc64e4e587883a6887744e5e48348290e8944ac8c6c5866f3c39db9a4600
OBS-Studio-32.2.0-beta2-Windows-arm64-PDBs.zip: 3110e6a4a1fef3f5474de37962e97b702601380e5afba48ec905a79966f4acfe
OBS-Studio-32.2.0-beta2-Windows-arm64.zip: d8998e8f0d7ae05da07a62c4b31dacfbd9a0f22e819736d045d0a6db85afc9db
OBS-Studio-32.2.0-beta2-Windows-x64-Installer.exe: 10ed6505b22df7c3d7ce3c30e8584bd9c475f0775b8515ab5bb895eefae870e6
OBS-Studio-32.2.0-beta2-Windows-x64-PDBs.zip: 302e7039d31dc897a2ce9d7323e9409e2e4bfcfe3d374de1cc21d0dbba783083
OBS-Studio-32.2.0-beta2-Windows-x64.zip: 38914895b20a6a2ffad4ed54ed41bf5ab2461fb10192cddc721eabccff526eae
OBS-Studio-32.2.0-beta2-macOS-Apple-dSYMs.tar.xz: f2f4cf21a396147be3b6a301f08b272ae546da0d5d4be0dd34d7b52191519560
OBS-Studio-32.2.0-beta2-macOS-Apple.dmg: 902de6585cddf070a161c6278db857aa3d5986e840a67cebb647dbcdae68ea72
OBS-Studio-32.2.0-beta2-macOS-Intel-dSYMs.tar.xz: 3dd5316492e67b8fe53197c28a6ae2def05a06df2cdfc5ad5af4189fd808d5f0
OBS-Studio-32.2.0-beta2-macOS-Intel.dmg: cddff8ff00b96eec9f5fb7116b4729d7de50ae58611bbc605958f3c458ccd02e
macOS 27.0 beta 2 (26A5368g)
iOS 27.0 beta 2 (24A5370h)
HeidiSQL v12.20
12.20 - 2026-06-22
⛰️ Features
- Support some keywords like CURRENT_TIMESTAMP in SQLite default value drop-down - (dbadd37)
🐛 Bug Fixes
- SelectUserNode on macOS cannot find a newly created node with a TUser, probably because nodes were refreshed too late in OnBeforePaint - (f6c5d2d)
- Expect "IF NOT EXISTS" clause in trigger definition - (71af8d3)
- Reveal procedures and function in MySQL which are stored with correct case in mysql.proc - (106010e)
⚙️ Miscellaneous Tasks
- Ignore all .po translation files pulled from Transifex - (611212a)
- Restrict cliff release notes from previous tag to current one, prefer spaces indentation in Makefile variable assignment - (548f44f)
Note
For a list of all the changes up to date, please read CHANGELOG.md.
v12.20-Windows
Bump version for v12.20 release
SCS On The Road: Dodge Viper Scanning and Interview
Today, we're excited to share another episode of our SCS On The Road series, where we travel across North America to meet passionate vehicle owners and gather valuable reference materials for future projects.
This time, our journey brought us to Denton, Texas, where we had the opportunity to experience a true American automotive icon - the 1997 Dodge Viper GTS.
During our visit, we had the chance to document and scan this beautiful car, getting our vehicle artists the accurate reference data needed to faithfully recreate it for the Road Trip project in American Truck Simulator. From its distinctive exterior styling to the finer interior details, every piece of information helps us bring this legendary sports car to life in-game.
This vehicle belongs to Dino, who kindly welcomed our team and generously allowed us to document his prized Viper. We also had the pleasure of having an interview with him, where he shared more about his amazing ride.
The Dodge Viper remains one of the most recognizable American sports cars ever produced, and seeing this exceptionally preserved 1997 example in-person was a fantastic experience for our team.
We would like to extend a sincere thank you to Dino for taking the time to speak with us, sharing his story, and allowing us to scan and capture reference materials from his stunning Viper. Support from owners like Dino is invaluable and helps us create authentic experiences for players around the world.
We hope you enjoy this latest episode of SCS On The Road from Denton, Texas. Be sure to watch the video and learn more about this incredible machine and its owner.
Ready to hit the road in the Dodge Viper? Be sure to add the RAM & Dodge Car Pack for American Truck Simulator to your Steam Wishlist! To stay up to date with the latest development news for Road Trip, don’t forget to follow our blog, subscribe to our newsletter, and follow us on X/Twitter, Facebook, BlueSky, and Instagram.
DistroWatch Weekly, Issue 1178
Review: TBlock
News: Arch responds to more AUR attacks, Fedora's growing community, reasons to avoid immutable desktops, Ubuntu 26.10 to get speech recognition, Canonical updates its beta policy, highlights of KDE Plasma 6.7
Questions and answers: What is the significance of the AUR being compromised?
Released....
12.0 RC1
🚀 Jellyfin Server 12.0 RC1
We are pleased to announce the first release candidate preview release of Jellyfin 12.0!
This is a preview release, intended for those interested in testing 12.0 before it's final public release. We welcome testers to help find as many bugs as we can before the final release.
As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!
A note about versioning
Starting with this release, we are dropping the preceeding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was.
Thus, we are now on two digits:
- The first digit is the major release. Expect signifiant changes between major releases. Do not ever auto-update to a new major release without first checking the release notes, and always take a backup of your server data and config before a major release upgrade.
- The second digit is the minor release. These are primarily bug and security fix releases, and do not introduce significant feature or functionality changes. You can, usually, safely auto-update between minor releases and should not need a full backup, but it is prudent just in case. You should also ALWAYS strive to run the latest point release as security fixes are embargo'd for at most 2 weeks after the release.
What's new?
The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.
There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests.
Note: You must be on Jellyfin 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. I have been informed that I was wrong here, and upgrades from 10.10.7 are also possible, same as 10.11.x!
Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process.
Note: If you install the RC, you should disable all plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.
Installing
This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.
- For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
- For Docker, you can pull the
12.0-rc1orpreviewtags.
What's Changed (since v10.11.x)
- Update CODEOWNERS to capture bump_version by @joshuaboniface in #7263
- Add css variable support for dark theme by @thornbill in #7277
- Refactor dark theme to base theme by @thornbill in #7343
- Hide empty message box if there isn't text by @viown in #6151
- Migrate dashboard user pages to use TS SDK by @viown in #7089
- Refactor light theme to use base theme by @thornbill in #7347
- Fix base theme icon color by @thornbill in #7386
- Add delay setting for photo slideshow by @nesnass in #7038
- Pass the new player to nextTrack to allow mixed playlist playback by @kevgrig in #5488
- Add HEVC level 6.2 (186) device capability check by @imtsuki in #6376
- Remove usages of deprecated framerate properties by @thornbill in #7395
- Add support for custom links in the experimental layout by @thornbill in #7394
- Use experimental layout by default by @thornbill in #7393
- Use enum for item actions by @thornbill in #7389
- Remove unused network share references by @thornbill in #7342
- Use consistent padding on item details screen by @thornbill in #7279
- Refactor themes structure by @thornbill in #7382
- Use sdk for item download url by @thornbill in #7412
- Remove dead itemsrefresher class by @thornbill in #7420
- Add support for scanning tartgeted paths with lint npm script by @tylers-username in #7436
- Tizen: Enable direct-play of anamorphic videos by @kinke in #7321
- Fix item grid inconsistencies by @thornbill in #7435
- Upgrade to NPM 11 and Node 24 active LTS by @larouxn in #7282
- Fix
.nvrmcto.nvmrctypo in PR GitHub workflow by @larouxn in #7522 - Fix jellyfin sdk type errors by @PeachesMLG in #7491
- Add missing Rewind & FastForward PlayState commands handling by @HamletDuFromage in #7527
- Remove unused AudioPodcast item type by @dfederm in #7532
- Remove reference to non-existing Recording media type by @dfederm in #7533
- Remove unused showFindNew export from itemidentifier.js by @dfederm in #7537
- Remove getData() and importFrom() dead code from userSettings.js by @dfederm in #7536
- Add max value to streaming bitrate textfield by @haleyburns in #7519
- Add video title to experimental layout by @viown in #7530
- Clarify Playlist and Collections delete prompt by @dfederm in #7534
- Remove old irrelevant comment about 'LabelSyncPlayTimeOffset' by @dfederm in #7535
- Add
caniuse-liteas dev dependency to keep it updated and update it by @larouxn in #7474 - Mitigate pull_request_target privilege escalation by @andrewrabert in #7616
- Add code assistance section to pull request template by @viown in #7619
- fix book player fullscreen on mobile apps by @dkanada in #7399
- Add playlist button and sort options to Playlists tab in experimental layout by @theguymadmax in #7538
- loosen anamorphic restrictions for browser device profiles by @meop in #7520
- Fix dashboard buttons overflow by @thornbill in #7648
- Stop using native scrollTo for smooth scrolling by @larsmunkholm in #7606
- move broken actions to workflow_run event by @dkanada in #7684
- Fix react cards showing default background when loading by @thornbill in #7674
- Hide home loading indicator optimistically by @thornbill in #7678
- Fix react card text missing keys by @thornbill in #7675
- define secrets for nested workflows by @dkanada in #7688
- Add error handling to rest of dashboard pages by @viown in #7223
- Migrate networking page to React by @viown in #7502
- add debug logging to PR step in workflow by @dkanada in #7690
- use pr list subcommand for pull request search by @dkanada in #7691
- Fix login loop by @Crashdummyy in #7685
- Add a Reset Filters button to bottom of filter dropdown by @1hitsong in #7130
- remove merge group events from main workflow by @dkanada in #7692
- Add watch feature to log viewer by @viown in #7268
- improve author and book support on itemDetails page by @dkanada in #7656
- Bump axios from 1.12.2 to 1.13.5 by @dependabot[bot] in #7578
- Fix password input type for CertificatePassword by @DatScreamer in #7696
- Use getBackupApi util from SDK by @thornbill in #7729
- Remove var mixin by @thornbill in #7647
- Cleanup typescript types by @thornbill in #7673
- Fix active library highlighting for items by @thornbill in #7644
- Extract getCardImageUrl and remove duplicate hook by @thornbill in #7676
- initial sections for book library view by @dkanada in #7354
- Fix multiselect panel styles by @thornbill in #7730
- Add display version util for 12.0 by @thornbill in #7677
- Fix sass if syntax by @thornbill in #7731
- Move users edit page to tabs by @viown in #7497
- Move card utils to utils directory by @thornbill in #7733
- Update Music Videos views in experimental layout by @theguymadmax in #7567
- Replace the buildin xbox limit it with a native shell option by @JPVenson in #7670
- Add default tab options for Home Videos and Photos library by @theguymadmax in #7557
- Add contributing guide and pr checklist by @thornbill in #7693
- Bump picomatch by @dependabot[bot] in #7762
- Add a gap to stack elements to prevent numbers from other adjacent stack to collapse and appear as one by @uxdesignerhector in #7419
- Add a folder view to the modern home videos library layout by @theguymadmax in #7741
- Fix CF pages deployment directory by @thornbill in #7784
- Fix react keys on item details metadata by @thornbill in #7785
- Fix theming for reactUtils component rendering by @thornbill in #7788
- Refactor wmc theme to use base theme by @thornbill in #7789
- Refactor blueradiance theme to use base theme by @thornbill in #7790
- Add explicit dependency on axios by @thornbill in #7797
- Bump lodash from 4.17.21 to 4.18.1 by @dependabot[bot] in #7793
- Compact the "playback info" overlay to add more infos by @nyanmisaka in #7291
- Enable AV1 fMP4 stream copy on TV clients by @nyanmisaka in #7802
- Add device id to StorageListItem by @thornbill in #7756
- add audiobooks back to book libraries by @dkanada in #7816
- Fix chromium browsers not cleaning up backdrops by @thornbill in #7738
- Cleanup removed api members by @thornbill in #7839
- SyncPlay menu update by @thornbill in #7643
- Add folders tab to experimental view in book libraries by @dkanada in #7822
- Fix backdrop size changing on mobile by @thornbill in #7849
- Fix clock icon alignment on scheduled tasks page by @TarasSmal in #7841
- Handle Seasons in recently added by @Shadowghost in #7623
- Add frame scrubbing controls by @flying-sheep in #7315
- Refactor user hooks to simplify usage by @thornbill in #7875
- Fix drawer display version by @thornbill in #7884
- Bump web version to 12.0.0 by @thornbill in #7885
- filter music artists from person results by @dkanada in #7882
- Disable sonarjs/aws-restricted-ip-admin-access lint rule by @terite in #7847
- Fix books not displaying in genre lists by @theguymadmax in #7911
- Fix blurry card images on high-DPI displays by @Maxr1998 in #7879
- Update sort options, default tab, and landing screen options for music videos by @theguymadmax in #7805
- Update Collections & Playlists library view for the modern layout by @theguymadmax in #7808
- Display music video title correctly if it belongs to an album by @hazemkrimi in #6819
- Fix keyboard controls working only on latin keyboard layouts by @MBR-0001 in #7398
- Fix duplicate locations by @Collin-Swish in #7469
- Update Mixed Media library view for the modern layout by @theguymadmax in #7821
- Fix genres not showing for collections and playlists by @theguymadmax in #7807
- Use innerHTML instead of replaceChildren to empty div by @mrxz in #7907
- Fix case sensitivity in library folder checks by @thornbill in #7914
- Move bitrate detection to web by @viown in #7864
- Bump axios from 1.13.6 to 1.16.0 by @dependabot[bot] in #7888
- Add translation for VideoRotationNotSupported by @nyanmisaka in #7894
- Use tanstack query for user settings by @thornbill in #7890
- Fix homescreen settings for mixed libraries by @theguymadmax in #7916
- Make library header sticky by @thornbill in #7836
- Use tanstack query for home screen sections by @thornbill in #7918
- show progress indicator for books by @dkanada in #7921
- add authors tab to book library by @dkanada in #7874
- Implemented sorting and filtering for Activity page by @bjorntp in #7431
- Fix behavior when applying filters and switching pages by @Shadowghost in #7820
- Fix keyboard in old browsers by @dmitrylyzo in #7917
- Add warning to backup operation if scan is running by @viown in #7923
- Add similarity provider configuration by @Shadowghost in #7663
- Fix xss in checkbox element by @thornbill in #7942
- Fix user view nav overflow logic by @thornbill in #7943
- Encode auth params when creating ApiClients by @thornbill in #7947
- Add collections tab for book libraries by @dkanada in #7946
- Start a library scan when adding folders to a library by @Shadowghost in #7952
- fix cardImage data-src set to "undefined" by @edvwib in #7929
- Add Collections and playlist tab to all libraries by @Shadowghost in #7939
- Add polish to library toolbar and menus design by @thornbill in #7927
- Reload item data on version change and use correct parts on playback by @Shadowghost in #7919
- Reload scroller on data receive by @Shadowghost in #7954
- Add OriginalLanguage as option to PreferredAudioLanguage by @Lampan-git in #6022
- Fix layout mode for library routing by @theguymadmax in #7951
- Replace ElevationScroll with OffsetAppBar by @thornbill in #7965
- Fix alphapicker alignment on desktop by @thornbill in #7964
- Fix backdrop in music queue by @me25542 in #7897
- Migrate WebSockets to SDK Subscriptions by @anultravioletaurora in #7838
- Disable touch switcher on experimental and disable scroll buttons on touch devices by @Shadowghost in #7971
- Studios tab extension by @Shadowghost in #7940
- Fix image upload spinner on failure by @darbyjack in #7949
- Implement studio search by @Shadowghost in #7970
- Support DOVI in mkv container on WebOS 25 and newer by @ErebZx in #7328
- Fix OSD animation event hiding header after leaving the video player by @brad1111 in #7968
- Fix navigation with game controllers by @MBR-0001 in #7975
- Fix slideshow interval not saving by @theguymadmax in #7983
- Use String.raw to avoid escaping backslashes in eslint config by @Mayme123 in #7866
- Remove repository prefix for pages deployment on push workflow by @nielsvanvelzen in #7978
- Fix broken layout on table pages by @thornbill in #7990
- Only show Play All button when items are present by @theguymadmax in #7988
- Add Play All and Shuffle buttons to series library by @theguymadmax in #7989
- Hide Group Versions for unsupported item types by @theguymadmax in #7999
- migrate book OSD to react component by @dkanada in #7848
- Fix Multiselect not working in collections by @austinhardaway in #7925
- Add still watching prompt by @thornbill in #7979
- When deleting a single item, include the name of the item in the confirmation message by @joshuaobrien in #7697
- Refactor library pages by @thornbill in #7998
- Fix playback issues in the home videos and photos library videos tab by @theguymadmax in #7986
- Fix blurhash and faster animation settings in new layout by @nyanmisaka in #8014
- Hold and drag on media no longer activates Multi-select by @bjorntp in #7732
- Merge library toolbar into main AppBar by @thornbill in #8030
- Fix Add to collection permissions by @theguymadmax in #8036
- Respect DisplayMissingEpisodes setting in item details pages by @lmaotrigine in #7810
- Add audiobooks to the authors tab by @theguymadmax in #8034
- Fix New Collection button permissions by @theguymadmax in #8037
- Always round up for card image sizes by @enter-a-random-username in #8022
- Add query caching to indexeddb by @thornbill in #7679
- Prevent invalid paths from being added to the list of folder paths by @theguymadmax in #8048
- Make Played and Unplayed filters mutually exclusive for the Modern view by @theguymadmax in #8002
- Fix errors on view change with pending requests by @thornbill in #8055
- Use plugin provided icon if available by @Shadowghost in #8053
- Adjust the section header link limit by @theguymadmax in #8019
- Remove pagination controls if user disabled by @thornbill in #8059
- Add Screensaver Time to Experimental layout by @dmitrylyzo in #8052
- Hide studios filter when empty by @theguymadmax in #8058
- Fix wrong settings applied on view change by @thornbill in #8062
- Disable play all and shuffle buttons instead of hiding by @thornbill in #8056
- Fix Duplicated
/socketConnections by @anultravioletaurora in #8011 - Add TV Shows creators to item details by @Rant423 in #8042
- Allow folders to be marked as played by @theguymadmax in #8063
New Contributors
- @nesnass made their first contribution in #7038
- @imtsuki made their first contribution in #6376
- @tylers-username made their first contribution in #7436
- @larouxn made their first contribution in #7282
- @HamletDuFromage made their first contribution in #7527
- @dfederm made their first contribution in #7532
- @haleyburns made their first contribution in #7519
- @meop made their first contribution in #7520
- @larsmunkholm made their first contribution in #7606
- @Crashdummyy made their first contribution in #7685
- @1hitsong made their first contribution in #7130
- @DatScreamer made their first contribution in #7696
- @uxdesignerhector made their first contribution in #7419
- @TarasSmal made their first contribution in #7841
- @flying-sheep made their first contribution in #7315
- @hazemkrimi made their first contribution in #6819
- @mrxz made their first contribution in #7907
- @Lampan-git made their first contribution in #6022
- @me25542 made their first contribution in #7897
- @anultravioletaurora made their first contribution in #7838
- @darbyjack made their first contribution in #7949
- @ErebZx made their first contribution in #7328
- @Mayme123 made their first contribution in #7866
- @austinhardaway made their first contribution in #7925
- @joshuaobrien made their first contribution in #7697
- @Rant423 made their first contribution in #8042
Full Changelog: v10.11.11...v12.0-rc1
12.0 RC1
🚀 Jellyfin Server 12.0 RC1
We are pleased to announce the first release candidate preview release of Jellyfin 12.0!
This is a preview release, intended for those interested in testing 12.0 before it's final public release. We welcome testers to help find as many bugs as we can before the final release.
As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!
A note about versioning
Starting with this release, we are dropping the preceeding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was.
Thus, we are now on two digits:
- The first digit is the major release. Expect signifiant changes between major releases. Do not ever auto-update to a new major release without first checking the release notes, and always take a backup of your server data and config before a major release upgrade.
- The second digit is the minor release. These are primarily bug and security fix releases, and do not introduce significant feature or functionality changes. You can, usually, safely auto-update between minor releases and should not need a full backup, but it is prudent just in case. You should also ALWAYS strive to run the latest point release as security fixes are embargo'd for at most 2 weeks after the release.
What's new?
The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.
There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests.
Note: You must be on Jellyfin 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. I have been informed that I was wrong here, and upgrades from 10.10.7 are also possible, same as 10.11.x!
Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process.
Note: If you install the RC, you should disable all plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.
Installing
This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.
- For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
- For Docker, you can pull the
12.0-rc1orpreviewtags.
What's Changed (since v10.11.x)
- Update CODEOWNERS to capture bump_version by @joshuaboniface in #15236
- Update Jellyfin Server version in issue template by @dpieski in #15398
- Add all 10.11 versions to issue template by @anthonylavado in #15565
- Add version to StartupUI by @JPVenson in #15246
- Disable legacy authorization methods by default by @nielsvanvelzen in #15559
- Deprecate HasPassword property on UserDto by @nielsvanvelzen in #14950
- Add support for more embedded metadata tags by @allmazz in #15437
- Fix TV Series parsing containing only numbers. by @CodyEngel in #14824
- refactor(StreamInfo): reorganize subtitle URL logic and conditions by @sususu98 in #13977
- Add milliseconds to default console output format by @kevgrig in #15227
- Remove special client behavior for API response fields by @nielsvanvelzen in #15638
- Add subtitle extraction timeout configuration option by @KarkaLT in #15538
- Add CPU to issue template by @theguymadmax in #15704
- Fix episodes showing up on recently added shows by @theguymadmax in #15433
- Fix: normalize punctuation when computing CleanName so searches without punctuation match (closes #1674) by @audrey-inglish in #14879
- Locking cleaning by @MarkCiliaVincenti in #15713
- Add ability to sort and filter activity log entries by @crobibero in #15583
- Fix typo in CheckOrCreateMarker exception by @Xinerki in #15341
- avoid Take(0) when Limit == 0 in #14608
- Proper pinning of SkiaSharp to prevent accidental updates by @MarkCiliaVincenti in #15736
- Optimize GetUniqueFlags() by @stevenaw in #15774
- Remove legacy API route middleware by @nielsvanvelzen in #15669
- parse more information from book filenames by @dkanada in #15655
- Library: Async the SaveImages function by @luigi311 in #15718
- Update issue template version to 10.11.5 by @theguymadmax in #15798
- Fixed Multi Sort in New ActivityManager by @bjorntp in #15820
- Add myself to CONTRIBUTORS.md by @allmazz in #15831
- Fix GET MetadataEditor ContentTypeOptions for mixed content by @Smeagolworms4 in #15797
- Fixed issue with ABI Compatability - Difference not completing by @PeachesMLG in #15924
- Upgrade Swashbuckle and fix OpenAPI spec by @Shadowghost in #15886
- Optimize
StringHelper.FirstToUpper()by @stevenaw in #15916 - Fix API diff workflow by @Shadowghost in #15888
- Fix KeyNotFoundException in CryptographyProvider when iterations parameter is missing by @ZeusCraft10 in #15958
- Add TrueHD and DTS codes string for HLS by @nyanmisaka in #15959
- fix: Handle unknown item types gracefully in DeserializeBaseItem by @ZeusCraft10 in #15956
- Update to .NET 10.0 by @Bond-009 in #15475
- Refactor HLS transcode seeking by @abitofevrything in #15926
- Fix zh-CN subtitle language display by @ZeusCraft10 in #15947
- Fix typos in XML documentation comments by @vignesh1507 in #15997
- Update issue template version to 10.11.6 by @theguymadmax in #16059
- fix: prevent premature disposal of HTTP subtitle streams by @lostb1t in #14809
- SessionManager: Log when playback is started by @jpds in #15908
- extract local metadata from OPF and EPUB files by @dkanada in #15604
- Remove some deprecated API members by @nielsvanvelzen in #16110
- Fix: Resolve CA1849 synchronous IO in EpubImageProvider by @Gladtbam in #16124
- Fix TMDB language handling: support full ISO 639-1 + ISO 3166-1 codes (e.g. zh-CN, zh-TW) by @Daydreamer-riri in #16151
- Add curly brace and parentheses support for parsing attribute values by @nileshp87 in #14927
- Skip validation for empty landing preferences by @theguymadmax in #16178
- Trim names and roles for people by @theguymadmax in #16181
- Fix container and updated by @JPVenson in #16202
- Fix: Add 'Kairon; IRSE!' to artist whitelist by @loop95 in #14709
- Add moveToTop option to IPlaylistManager.AddItemToPlaylistAsync by @kevgrig in #15138
- TmdbSeriesProvider: Set ProductionYear field by @DerMaddis in #16144
- Fix episodes appearing in Season Unknown incorrectly and prevent unnecessary virtual season creation by @theguymadmax in #16236
- Mitigate pull_request_target privilege escalation by @andrewrabert in #16263
- Upgrade Swashbuckle to v10 by @Shadowghost in #16256
- Fix malformed query string in StreamInfo.ToUrl() causing 500 error via proxies by @cosu in #16255
- Revise note on hosting web client for development by @JPVenson in #16281
- Update JetBrains logo link in README.md by @anthonylavado in #16323
- AIFF support: add .aifc as audio file type, remove .aiff as image file type in #16274
- Use artist images for music library thumbnail by @theguymadmax in #16240
- Fix near-1:1 SAR values falsely flagged as anamorphic by @NoFear0411 in #16318
- Add missing ProducesResponseType(401) to QuickConnectController.InitiateQuickConnect by @JuanCalderon-17 in #16331
- Fix ItemValues Type checks by @Shadowghost in #16160
- Return BadRequest when an invalid set of filters is given by @Bond-009 in #16398
- Use generic Enum overloads to resolve CA2263 warnings by @jaxx2104 in #16395
- Respect library country code for parental ratings by @theguymadmax in #16388
- Fix remote image language priority to prefer English over no-language by @redinsch in #16368
- Recognize ".m4b", ".m4a", ".aac", ".flac", ".mp3", and ".opus" as an audio-book formats by @lousando in #15377
- include external IDs and URLs for book providers by @dkanada in #15593
- Fix int32 overflow in QSV rate-control parameter computation by @scheilch in #16376
- fix crashes on devices that don't support ipv6 by @JanzenJohn in #15841
- Fix filename truncation when bracketed tags appear mid-filename by @tyage in #16222
- Add spec-compliant dvh1 HLS variant for Dolby Vision Profile 5 by @NoFear0411 in #16362
- Fix attachment extraction of files without video or audio stream by @Shadowghost in #16312
- More robust date handling in Library DB migration by @Shadowghost in #16474
- Add ignore patterns for Hungarian sample files by @furdiburd in #16238
- fix: cap GetVideoBitrateParamValue at 400 Mbps by @scheilch in #16467
- recognize underscore and dot separators for multi-version grouping by @upscaylman in #16465
- split openapi workflows between pull request and merge by @dkanada in #16463
- Only set IsAvc for video streams by @Bond-009 in #16507
- Cleanup trickplay cache dir on failure by @Shadowghost in #16365
- remove nested directory for openapi workflows by @dkanada in #16524
- Update issue template version to 10.11.7 by @theguymadmax in #16530
- Add callback for segment data pruning to IMediaSegmentProvider by @Shadowghost in #16419
- fix openapi report and publish workflows by @dkanada in #16556
- Fix parental ratings not working on music albums by @theguymadmax in #16553
- Fix UDP Auto-Discovery returning IPv6 for cross-subnet IPv4 requests by @ZeusCraft10 in #15902
- fix invalid workflow on openapi report job by @dkanada in #16561
- edit openapi files in place with sed by @dkanada in #16569
- add StartIndex and ParentId to person search by @dkanada in #16397
- Add AlbumNormalizationGain field to BaseItemDto by @HeroBrine1st in #14745
- Reverse check for track changed by @bilbofroggins in #16501
- Fix BoxSet parentId being ignored in item queries by @theguymadmax in #16490
- Update issue template version to 10.11.8 by @theguymadmax in #16573
- Don't spam debug log with items without rating by @Bond-009 in #16342
- Backport security fixes by @Bond-009 in #16577
- Fix FolderStorageInfo to show parent filesystem by @joshuaboniface in #16456
- Fix HDR tonemapping for BDMV content by @ddemarco5 in #16609
- Fix language display for ISO 639-2-only codes (e.g. mul, und, mis, zxx) by @shocklateboy92 in #16567
- Respect EnableSubtitleExtraction setting in subtitle delivery by @LTe in #16380
- add NameStartsWith and NameLessThan filters to Person search by @dkanada in #16619
- Fix in-process restart by @Shadowghost in #16482
- Fix artist metadata not being fetched on initial library scan by @theguymadmax in #16606
- chore(ci): Add permissions grant by @jsoref in #13443
- fix: retain subtitles spanning HLS segment boundaries by @LiHRaM in #16594
- Don't allow library name with leading or trailing space by @gnattu in #13491
- Added Tanzania countries.json by @ewkonzo in #14406
- Move rename command permission check to script by @felix920506 in #11231
- Set XmlTvProgram.IsLive by @SenorSmartyPants in #8890
- Remove global subtitle configuration by @KGT1 in #14957
- Update to Jellyfin.XmlTv 10.12.0-pre1 by @Bond-009 in #16659
- Enable jellyfin.db customized path by @twsouthwick in #15355
- Include item path in provider error log messages by @johnpc in #16667
- Skip libraries without enabled subtitle providers in SubtitleScheduledTask by @MBR-0001 in #16649
- fix: add image/jpg to MIME type extension lookup by @jskoetsier in #16658
- Remove all JF contributors from Emby list by @Bond-009 in #16694
- Upgrade to xunit v3 by @Shadowghost in #16666
- Fix watched status resetting on re-watch by @MSalman5230 in #15762
- improve openapi endpoint categorization by @dkanada in #16698
- Fix IPv6 prefixes not recognized as proxy by @dwandw in #16672
- hide HLS controllers and deprecate unused endpoints by @dkanada in #16715
- fix: use symmetric 15s default for skip forward/backward lengths by @tcsenpai in #16739
- Avoid SSA to ASS conversion and loss of styles by @nyanmisaka in #16744
- feat/audiobook_chapters by @sevenrats in #16518
- Query Performance Improvements by @Shadowghost in #16062
- Fix FFProbeVideoInfo downloading subtitles without considering internal streams by @MBR-0001 in #16747
- Fix triple digit episode number handling by @Shadowghost in #16475
- fix person TotalRecordCount when limit is applied by @dkanada in #16616
- Fix Playlist and Boxset query, save and count performance by @Shadowghost in #16761
- Fix keyframe duration overshoot breaking playback by @dyld-w in #16704
- Implement ignore rule caching by @Shadowghost in #16166
- Honor episode NFO season during metadata merge by @itz4blitz in #16702
- Fix dummy chapter handling for videos with a single chapter or short duration. by @ExpctING in #16695
- Add CACHEDIR.tag support by @Shadowghost in #16478
- Keep legacy authorization enabled by @nielsvanvelzen in #16754
- Fix use of thread-unsafe List.Sort() by @gabeluci in #16777
- Guard against null-overwrite of saved audio/subtitle track selections by @llaforest in #16769
- Speed-up LatestItems for Music by @Shadowghost in #16756
- Fix EPG issues by @Shadowghost in #16220
- Fix rewatch query by @Shadowghost in #16778
- Remove unnecessary ToList calls in TrickplayManager by @poytiis in #16322
- Add different Slovak and Czech translation of Season for parsing by @Biosias in #16646
- Add the filename to exceptions in DeserializeFromFile() by @lcorbasson in #16246
- Fix UserManager after EFcore refactor (backport #15368) by @JPVenson in #16782
- Fix subtitle save path by @Shadowghost in #16779
- Move MusicBrainz Query client to plugin instance by @Shadowghost in #16780
- Fix unique people response for query if no item ID is supplied by @Shadowghost in #16783
- Ignore season directories with no video for TV Shows by @LmanTW in #16611
- Fix #16308: Community ratings not updating after changing .nfo file. by @PERSONALPANCHIWIRIS in #16466
- Remove DigitalOcean from sponsors section by @theguymadmax in #16788
- Fix Canadian rating and fallback to unrated if we have a CountryCode but no matching rating by @Shadowghost in #16328
- Add startup mode to migrate or seed the database on cmd by @JPVenson in #16319
- Fix live stream consumer leak on negative PositionTicks by @WizardOfYendor1 in #16321
- Parse provider IDs from season and episode folder/file names by @IDisposable in #16472
- Fix MusicBrainz test. by @IDisposable in #16789
- fix person type exclusion in api response by @dkanada in #16784
- Switch to new version scheme by @Shadowghost in #16758
- Allow tmdb as an alias for tmdbid provider id by @theguymadmax in #16433
- Add OriginalLanguage as option to PreferredAudioLanguage by @Lampan-git in #12579
- Fix CA1051 and CA1815 warnings, Change public fields to auto properties by @tjwalkr3 in #14847
- Fix Segment Provider Configuration by @Shadowghost in #16798
- IOException with STRM HTTP URLs by @benbenmoss in #16290
- Fix artist duplicates by @Shadowghost in #16807
- Add videoRotation profile condition by @nyanmisaka in #16803
- Print warning on invalid Subnets in Network/Proxy configuration by @Shadowghost in #16793
- Suppress CA2213 false positive on ApplicationHost._pluginManager (#2149) by @bittoby in #16792
- Use SortName when sorting by name by @Shadowghost in #16804
- Safeguard against invalid GUIDs by @Shadowghost in #16813
- consolidate OpenAPI categories and deprecate startup routes by @dkanada in #16757
- Reference correct .NET version in README by @Bond-009 in #16831
- return music artists from person endpoints by @dkanada in #16721
- Update log for user session related concurrency update fails by @JPVenson in #16835
- Add Accept-Language header support and cleanup translations by @Shadowghost in #16488
- Implement similarity providers by @Shadowghost in #15970
- Implement multiple versions for episodes. by @Shadowghost in #16828
- New filters for audio and subtitle languages by @TheMelmacian in #9787
- Set max rating for splashscreen to 13 by @theguymadmax in #16852
- Fix CA1819 warnings in ChannelFeatures by using IReadOnlyList by @jtvhd6 in #16853
- fix: add null check for non-existent program in GetProgram by @BrunoSync in #16858
- Misc fixes by @Shadowghost in #16837
- fix: write livetv recording NFO dateadded as UTC by @tayfun-akguc in #16863
- Embed external subtitles into MKV when transcoding by @LTe in #16448
- Use --batch --yes for installing jellyfin keyring in devcontainer by @IDisposable in #16878
- Fix integrated provider images by @Shadowghost in #16855
- Modernize version display in UI by @JPVenson in #16862
- Have device deletion take list of ids by @LePips in #12834
- Add support for filtering boxsets by parentId by @Shadowghost in #16882
- Reorder Migrations and fix failing migration by @JPVenson in #16861
- Add CI format check by @jakobkukla in #15250
- Fix Merge Conflict Labeler by @Bond-009 in #16892
- Add support for filtering playlists by parentId by @Shadowghost in #16893
- Update issue template version to 10.11.9 by @theguymadmax in #16897
- fix: suppress repeated PriorityClass warning in MediaEncoder by @psavarmattas in #16872
- Backport: Fix/user manager collation by @Bond-009 in #16919
- Update issue template version to 10.11.10 by @theguymadmax in #16927
- Fix inconsistent extradata generated by hevc_vaapi on AMD driver by @nyanmisaka in #16913
- Improve OriginalLanguage normalization and inheritance by @Lampan-git in #16829
- Fix movie recommendations by @Shadowghost in #16856
- Fix A/V desync when resuming HLS with video transcode + audio copy by @LTe in #16580
- Fix Merge Conflict Labeler #2 by @Bond-009 in #16963
- Add new viewtypes options by @theguymadmax in #16177
- Add a collection API for
Included Infeature by @XSAM in #15516 - Fix CA2007 warnings in InstallationManager by @jonesy827 in #16946
- Use ConfigureAwait(false) in CollectionController by @PCEWLKR in #16953
- Remove NowPlayingQueueFullItems from session DTOs by @PCEWLKR in #16976
- Compare old file byte-by-byte to new stream by @IDisposable in #16936
- Add support for VobSub subtitle streams by @altqx in #16552
- Fix inaccessible artist when they exist in multiple libraries by @theguymadmax in #16977
- Fix similarity by @Shadowghost in #16942
- Fix Schedules Direct API Error Codes by @arazilsongweaver in #16920
- Fix folders being identified as seasons in mixed libraries by @theguymadmax in #16259
- Only resolve symlinks on playback by @Shadowghost in #16965
- Re-disable legacy authorization methods by default by @theguymadmax in #16992
- Write subtitles using SubtitleEdit by @Bond-009 in #16805
- Fix recently added episode links and posters by @Shadowghost in #16967
- Trim tags by @theguymadmax in #16994
- Fix incorrect list capacity by @theguymadmax in #16996
- Only default recursive to true if we have includeItemTypes by @Shadowghost in #16999
- Make EncoderPreset non nullable by @nyanmisaka in #17007
- Extract attachments in one ffmpeg command when dumping by @Shadowghost in #16915
- Fix season unknown for flat TV structures by @theguymadmax in #16995
- Improve Merge Conflict Labeler by @Bond-009 in #17018
- Prefer subtitle extension over codec by @Bond-009 in #16998
- Enforce parental filtering on additional endpoints by @Shadowghost in #17019
- Fix playlist visibility by @Shadowghost in #17025
- Fix subtitle replacement not invalidating cache by @Shadowghost in #17028
- Fix external data pruning on item deletion by @Shadowghost in #16941
- Discover existing trickplay files on scan by @Shadowghost in #16945
- Update issue template version to 10.11.11 by @theguymadmax in #17035
- Fix xUnit1051 in UserManagerLockHelperTests by @Shadowghost in #17043
- fix(dto): prefer PlaylistsFolder primary image for playlists tiles by @beateixeira04 in #16520
- Implement search providers by @Shadowghost in #16121
- Refresh live TV channel image when remapped (alt #7843) (fixes #7834) by @Bond-009 in #10841
- Media source handling fixes by @Shadowghost in #17041
- Prefer local alternate versions when deduplicating linked children by @Shadowghost in #17042
- Add code assistance section to PR template by @nielsvanvelzen in #17054
- migrate local comic providers to server codebase by @dkanada in #16444
- Fix duplicate trickplay images for interlaced videos by @nyanmisaka in #17058
- Fix CleanName and CleanValue refresh by @Shadowghost in #17064
- Assign correct season info to new episodes by @ivanjx in #17051
- Fix duplicate key collision by @theguymadmax in #17083
- Fix AudioDb album description not displayed for English (mirror of #16606) by @Gadnief in #17081
- Add support for background images and episode thumbnails from XMLTV by @SheaSmith in #17077
- Fix AlbumIds filtering by Name instead of by Id by @matt-teahan in #17085
- Replace usage of SharpCompress by @Bond-009 in #17089
- Fetch TV Shows creators from TMDB by @Rant423 in #17107
- Always apply recursive when filters are requested by @Shadowghost in #17088
- Extend TranscodingReason reporting by @Shadowghost in #17106
- improve book resolution from filename by @dkanada in #17087
- Follow native interoperability best practices by @Bond-009 in #17099
- Fix episode air date offset after initial scan by @theguymadmax in #17121
- Fix series year lost during name parsing by @theguymadmax in #17112
- Fixed "Deleting media that is still being watched in SyncPlay results in errors" by @pokreman06 in #14935
- Skip parsing root-level folders in SeriesResolver by @theguymadmax in #17116
- Deprecate the redundant /Trailers endpoint by @moontwister in #17094
- Fix audio sample rate forced to 48 kHz for non-Opus codecs by @moontwister in #17090
- Fix Identify returning wrong results by @theguymadmax in #17146
New Contributors
- @dpieski made their first contribution in #15398
- @allmazz made their first contribution in #15437
- @CodyEngel made their first contribution in #14824
- @kevgrig made their first contribution in #15227
- @KarkaLT made their first contribution in #15538
- @audrey-inglish made their first contribution in #14879
- @Xinerki made their first contribution in #15341
- @stevenaw made their first contribution in #15774
- @luigi311 made their first contribution in #15718
- @bjorntp made their first contribution in #15820
- @Smeagolworms4 made their first contribution in #15797
- @ZeusCraft10 made their first contribution in #15958
- @abitofevrything made their first contribution in #15926
- @vignesh1507 made their first contribution in #15997
- @jpds made their first contribution in #15908
- @Gladtbam made their first contribution in #16124
- @Daydreamer-riri made their first contribution in #16151
- @nileshp87 made their first contribution in #14927
- @loop95 made their first contribution in #14709
- @DerMaddis made their first contribution in #16144
- @cosu made their first contribution in #16255
- @NoFear0411 made their first contribution in #16318
- @JuanCalderon-17 made their first contribution in #16331
- @jaxx2104 made their first contribution in #16395
- @redinsch made their first contribution in #16368
- @lousando made their first contribution in #15377
- @scheilch made their first contribution in #16376
- @JanzenJohn made their first contribution in #15841
- @tyage made their first contribution in #16222
- @furdiburd made their first contribution in #16238
- @upscaylman made their first contribution in #16465
- @HeroBrine1st made their first contribution in #14745
- @bilbofroggins made their first contribution in #16501
- @ddemarco5 made their first contribution in #16609
- @shocklateboy92 made their first contribution in #16567
- @LTe made their first contribution in #16380
- @LiHRaM made their first contribution in #16594
- @ewkonzo made their first contribution in #14406
- @twsouthwick made their first contribution in #15355
- @johnpc made their first contribution in #16667
- @jskoetsier made their first contribution in #16658
- @MSalman5230 made their first contribution in #15762
- @dwandw made their first contribution in #16672
- @tcsenpai made their first contribution in #16739
- @sevenrats made their first contribution in #16518
- @dyld-w made their first contribution in #16704
- @itz4blitz made their first contribution in #16702
- @ExpctING made their first contribution in #16695
- @gabeluci made their first contribution in #16777
- @llaforest made their first contribution in #16769
- @poytiis made their first contribution in #16322
- @Biosias made their first contribution in #16646
- @lcorbasson made their first contribution in #16246
- @LmanTW made their first contribution in #16611
- @PERSONALPANCHIWIRIS made their first contribution in #16466
- @WizardOfYendor1 made their first contribution in #16321
- @benbenmoss made their first contribution in #16290
- @bittoby made their first contribution in #16792
- @jtvhd6 made their first contribution in #16853
- @BrunoSync made their first contribution in #16858
- @tayfun-akguc made their first contribution in #16863
- @psavarmattas made their first contribution in #16872
- @XSAM made their first contribution in #15516
- @jonesy827 made their first contribution in #16946
- @PCEWLKR made their first contribution in #16953
- @altqx made their first contribution in #16552
- @arazilsongweaver made their first contribution in #16920
- @beateixeira04 made their first contribution in #16520
- @Gadnief made their first contribution in #17081
- @SheaSmith made their first contribution in #17077
- @matt-teahan made their first contribution in #17085
- @Rant423 made their first contribution in #17107
- @pokreman06 made their first contribution in #14935
- @moontwister made their first contribution in #17094
Full Changelog: v10.11.11...v12.0-rc1
Alpine 3.22.5, 3.23.5 released
Tim Retout: seL4 repo relationships
The seL4 organisation on GitHub uses git-repo to manage multiple source repositories, and so there are a large number of projects to get your head around when figuring out the ecosystem.
As an experiment, I have taken the various manifest files across the org, and constructed a graph based on how frequently each pair of repositories is mentioned in a manifest together. See below:
[This may render badly when syndicated outside of my blog; and also on small screens. And probably large screens. I’ve attempted to make sure there’s a non-JS fallback – on my site with JS enabled, if you hover over a node, it should highlight connected nodes.]
The colouring of the nodes is mostly manual; I experimented with graph clustering algorithms but have not found a satisfactory result so far. Still, some clusters are obvious:
-
Kernel – the
seL4microkernel proper. This often but not always co-exists with the main cluster of core libraries, but it is pulled away slightly by the verification and microkit manifests. -
Verification – the verification repositories (
l4v,HOL,graph-refine,polyml,isabelle) form a very distinct group. These are connected only to the seL4 microkernel itself, which is the only component formally verified. -
Microkit –
microkitis a newer operating system framework that does not use CAmkES, so stands apart from the rest of the pack. I chose to scope this work to the seL4 org, so the LionsOS ecosystem and sDDF which are maintained by Trustworthy Systems are not shown. Also not linked isrust-sel4, because this modern world isn’t using git-repo in the main to manage its repositories. -
RefOS – I’d not come across
refosbefore, but it appears to be an example OS from 2021 built on the seL4 kernel.
It’s quite hard to pull apart the CAmkES framework and the core
libraries; there are definitely some which are more associated with VM
management, but the overall shape of this co-occurence data is a messy
ball in the middle with some outliers in orbit. One observation is
that camkes is correctly identified as more peripheral than
camkes-tool, which contains the actual core CAmkES code.
Reflecting on this approach, in hindsight I’m surprised that using co-occurences worked as well as it did – there was no attempt to actually inspect the code and find direct mentions of other code e.g. library header dependencies. As the newer microkit effort largely eschews git-repo, better results might be found by actually taking that more detailed approach, so that graph edges could represent real dependencies between two packages. Additionally, this could allow diving into the various libraries held in the different ’libs’ repos, to get a more granular graph of relationships between them.
However, I think I spent more time on making it possible to render graphviz graphs easily on my blog than actually gaining any insight into the codebase!
Dirk Eddelbuettel: RcppArmadillo 15.4.0-1 on CRAN: New Upstream Minor
![]()
Armadillo is a powerful and expressive C++ template library for linear algebra and scientific computing. It aims towards a good balance between speed and ease of use, has a syntax deliberately close to Matlab, and is useful for algorithm development directly in C++, or quick conversion of research code into production environments. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 1282 other packages on CRAN, downloaded 47.1 million times (per the partial logs from the cloud mirrors of CRAN), and the CSDA paper (preprint / vignette) by Conrad and myself has been cited 697 times according to Google Scholar.
This versions updates to the 15.4.0 upstream Armadillo release made on Thursday. We had run a complete reverse-dependency check leading up to it, asserting there were no issues with packages dependent on it. As it sometimes goes with that many packages involved, one CRAN package reported one test failure. And it turned out to be both unrelated and pre-existing. But sorting this out over one round of email delayed things by a day. And then I went cycling for a good cause so this announcement post comes a little later than usual. The package has also been updated for Debian, built for r2u, and by now also at CRAN for the different binary releases.
All changes since the last CRAN release follow.
Changes in RcppArmadillo version 15.4.0-1 (2026-06-17)
Upgraded to Armadillo release 15.4.0 (Medium Roast Agave)
Added
fill::nan,fill::pos_inf,fill::neg_infas optional fill forms for theMatclassAdded
.push_back()for appending elements to vectorsFaster handling of
find()within.elem()Faster element-wise
min()andmax()Faster
conv_towhen element types of input and output objects are the same
Courtesy of my CRANberries, there is a diffstat report relative to previous release. More detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the Rcpp R-Forge page.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can sponsor me at GitHub. You can also sponsor my Tour de Shore 2026 ride in support of the Maywood Fine Arts Center.
v0.16.10
[0.16.10] - 2026-06-21
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.
Added
- International Domain Names (IDN) support (#207).
- OAuth:
- OAuth Profile for Open Public Clients (draft-ietf-mailmaint-oauth-public)
- Client secret verification for confidential clients.
- HTTP: Add
redirectRootoption toHttpobject to allow redirecting requests to the root path to a different path (e.g./account). - ACME:
reuseKeyoption to allow reusing private keys in renewals. - IMAP:
- IMAP Extension for Object Identifiers (draft-ietf-mailmaint-imap-objectid-bis)
GETJMAPACCESScommand to discover the JMAP session resource URL (#2736).
Changed
Fixed
- JMAP conformance (pass the jmap-test-suite tests):
- Methods are only available if their capability is in
using. - Reject requests that do not specify
application/jsonin theContent-Typeheader. - Require
accountIdargument on requests. - Return unparsable ids in
notFound/notUpdated/notDestroyed/notCopiedinstead of dropping them. - Default calendars and address books are not subscribed by default.
*/set: Unchanged immutableidproperty is rejected on update.*/queryand*/queryChanges: nullrejected asnotRequest`.Email/query:- Improper
anchorhandling. - Total miscount when
collapseThreadsis enabled. - Wrong sort order on
hasKeyword,allInThreadHaveKeyword, andsomeInThreadHaveKeywordconditions. - Non-standard header values are not searchable.
- Improper
Email/copy: Take the source message id from the value'sidproperty.Email/set: Bump reference-resolution max_depth from 1 to 2.Email/import: Reject blobs that do not contain valid messages.EmailSubmission/set: returnsendAtandundoStatusin the created response.Mailbox/set: ReturnalreadyExistsinstead ofinvalidPropertieswhen creating a mailbox with an existing name.SearchSnippet/get: incorrect response structure.Thread/changes: emit a container delete when a thread becomes empty.VacationResponse/set: incorrect singleton handling.
- Methods are only available if their capability is in
- IMAP: Discard oversized non-synchronizing literals (#2768).
- DANE: Improper
TLSArecord validation (#2328 - credits to @vdukhovni). - OIDC: Add default domain name to groups that are not email addresses.
- RocksDB: Enable blob garbage collection to reclaim disk space from deleted blobs.
- Sieve:
includestatements ignore capitalisation of sub-script names (#1643) - Cache: Invalidate negative email caches when an account is created.
- Troubleshoot tool: Use the configured source IP address when connecting to remote servers (#2867).
Check binary attestation here
Vasudev Kamath: Releasing debvulns: CLI for listing Debian vulnerabilities
Following up on my previous post, I have released the debvulns CLI. This utility uses the same parsing logic as the debsecan-mcp server but exposes the functionality directly via the command line.
Why a new CLI?
While Debian's native debsecan utility exists, it lacks modern output formats like JSON and CSV, and fails to expose a significant amount of metadata available in the Debian Security Team's daily snapshot.
Additionally, running a persistent Model Context Protocol (MCP) server introduces context window overhead. The manifests and tool descriptions required by the protocol consume tokens even when idle. For debsecan-mcp, the MCP Inspector utility shows an overhead of roughly 150 tokens.
By contrast, an LLM can parse a standard CLI help menu on-demand without permanently draining the context window. Integrating the CLI into a persistent agent workflow can be achieved via a skill file, allowing the LLM to leverage the tool without repeated discovery overhead.
What else is NEW?
During testing, I observed discrepancies between the output of debsecan-mcp/debvulns and native debsecan. Debugging with an LLM revealed a bug in the version comparison logic that caused debvulns to underreport vulnerabilities. This has been resolved.
The current interface supports structured formatting and customizable data backends:
usage: debvulns [-h] [-s {critical,high,medium,low,negligible}] [-f {json,csv}] [--sort-by {package,cve}] [--vuln-url VULN_URL] [--epss-url EPSS_URL] [--suite SUITE] [--cache-dir CACHE_DIR] [--no-cache] [-v] debvulns - CLI Debian Vulnerabilities Tracker options: -h, --help show this help message and exit -s, --severity {critical,high,medium,low,negligible} Filter vulnerabilities by severity -f, --format {json,csv} Output format (default: json) -sort-by {package,cve} Sort vulnerabilities by 'package' or 'cve' --vuln-url VULN_URL Custom URL or local path for Debian Security Tracker data --epss-url EPSS_URL Custom URL or local path for EPSS scores data --suite SUITE Debian suite name (e.g. bookworm, sid). Auto-detected by default. --cache-dir CACHE_DIR Directory to cache fetched and parsed data (default: /var/cache/debvulns) --no-cache Do not use cached data, force downloading and parsing -v, --verbose Enable verbose debug logging (sent to stderr)
By allowing users to override data sources with local snapshots of the Debian Security Tracker and EPSS feeds, debvulns can run natively in airgapped environments.
What Next?
The next step is building a Prometheus exporter for this vulnerability data to streamline scanning and monitoring across data center infrastructure. Stay tuned.
Part-DB 2.12.3
Important
This version contains security fixes, it is recommended to update to this version immediately.
Important
If you are using Part-DB it would be helpful if you fill out this short survey on your usage of Part-DB (Google Forms): https://forms.gle/Q15twx3YYq3qCNfe8
Part-DB 2.12.3
Security fixes
- Fixed missing SVG sanitatization, when file was uploaded with non-svg extension
- Added CSP headers to static files, to prevent script execution, should an vulnerable file be uploaded somehow
Other changes
- Updated KiCad symbols
- Updated dependencies
Full Changelog: v2.12.2...v2.12.3