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.
New features and highlights¶
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 = "..."; }; # ... })
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.