26.05 Release notes (unreleased)¶
Breaking changes¶
This release removes the “IOC modules” system for packaging EPICS IOCs, which was deprecated in EPNix 25.05. If you still used this old way of packaging IOCs, follow the migration guide Migrating from modules development.
The
services.phoebus-alarm-serverandservices.phoebus-alarm-loggerNixOS modules were heavily hardened, because the Alarm Server might run arbitrary commands from the network, often without any authentication.See the Phoebus alarm danger indication for a more in-depth explanation.
The PVWS part of the
services.dbwrNixOS module was split into its own moduleservices.pvws.If you set any of the settings
EPICS_CA_ADDR_LIST,EPICS_CA_AUTO_ADDR_LIST,PV_DEFAULT_TYPE, orPV_WRITE_SUPPORTfromservices.dbwr.settings, define them inservices.pvws.settingsinstead.epnix.phoebus-ologwas upgraded to6.0.0+, which changed the option for setting the authentication providers.Replace the use of
demo_auth.enabled,ad.enabled,ldap.enabled, andembedded_ldap.enabledwithservices.phoebus-olog.settings.authenticationProvidersinstead, and set it to"inMemory","activeDirectory","ldap", or"embeddedLdap".Phoebus Olog now also requires bcrypt hashed password for the embedded LDAP authentication provider. See the Phoebus Olog guide.
The
services.phoebus-ologNixOS module now configures the Phoebus Olog service to accept HTTP connections instead of HTTPS.That’s because the upstream HTTPS configuration’s private key is publicly available in the Git repository, making it insecure.
If you want an HTTPS service, configure a reverse proxy that forwards connections to the Phoebus Olog service.
epnix.archiver-appliancewas upgraded to2.4.0+which introduced Parquet support and now requires Tomcat 10. This Tomcat 10 requirement unfortunately makes it incompatible with theservices.dbwrandservices.pvwsmodules, which require Tomcat 9. Either split your configuration into 2 machines, or use declarative NixOS containers.
New features and highlights¶
New packages for building a “Phoebus ecosystem VM” that contains most Phoebus-related services. You can build an OVA file with
epnix.phoebus-ecosystem.virtualbox-imageor run a QEMU VM withepnix.phoebus-ecosystem.qemu-vm. See the new Phoebus ecosystem VM guide for more information.epnix.channel-finder-servicewas upgraded to5.0.0+andepnix.support.reccaster/python3Packages.recceiverwere upgraded to1.9.2+. No user-visible breaking changes.epnix.phoebusnow bundles the Phoebus documentation, and follows a file structure closer to what’s distributed in official Phoebus packages.services.pvwscan now be configured independently of DBWR.epnix.dbwrwas upgraded toR1.The
services.phoebus-ologmodule gained anopenFirewalloption.You can now pass a function as argument to the
mkEpicsPackagefunction. This means that you can use thefinalAttrspattern, for example:# ... mkEpicsPackage (finalAttrs: { pname = "my-package"; version = "1.0.0"; src = fetchFromGitHub { owner = "my-owner"; repo = "my-repo"; rev = finalAttrs.version; hash = "..."; }; # ... })
EPNix now enables structured attributes by default on
mkEpicsPackagepackages.
Fixes¶
spring-boot based services (ChannelFinder, Phoebus Olog, Phoebus save-and-restore) now won’t start an Embedded LDAP server unless the Embedded LDAP is explicitly used. This solves a port conflict when installing those services on the same machine.
This fix was backported to the
nixos-25.11branch.
Documentation¶
The Using Python scripts article was rewritten and is now much simpler.
The Phoebus Alarm guide now has a section on how to add custom alarm scripts.
A new guide for configuring Phoebus Olog.
We now serve the EPNix documentation on ReadTheDocs, with the hope of migrating from GitHub pages in the future. ReadTheDocs has better link preview, better multi-version management, should have less issue with SEO, and is open source.
A new No LLM policy that forbids using LLM for contributing to EPNix.