The JS backend must go. Having JS slows down PolKit startup time and simple rule execution, and can quite trivially be made to use another format.
Note: polkit in Solus unstable is broken, as I had the bright spark idea of replacing mozjs with duktape, which then broke it further. I then got sick
entirely of polkit even having JS (to the point of offence) and I'm now replacing it with a new format like so:
[Policy] Rules=gtk.rules; libvirt.rules; systemd.rules; udisks.rules; AdminRules=polkit-default.admin [polkit-default.admin] InUnixGroups=wheel # InNetGroups=blah [gtk.rules] Actions=org.gtk.vfs.file-operations-helper SubjectActive=true SubjectLocal=true # SubjectPID= # SubjectSeat= # SubjectSession= InUnixGroups=wheel Result=yes [libvirt.rules] Actions=org.libvirt.unix.manage InUnixGroups=libvirt Result=yes # Explicitly set a result if the condition is NOT matched # ResultInverse=auth_self_keep [systemd.rules] Actions=org.freedesktop.locale1.set-locale; org.freedesktop.locale1.set-keyboard; org.freedesktop.hostname1.set-static-hostname; org.freedesktop.hostname1.set-hostname; org.gnome.controlcenter.datetime.configure SubjectActive=true SubjectLocal=true InUnixGroups=wheel Result=yes # Cranky example to make the polkit manpage happy. [udisks.rules] ActionContains=org.freedesktop.udisks2. ExpectedKeys=drive.vendor; drive.model ExpectedValues=SEAGATE; ST3300657SS Result=yes