My favorite Linux brain teaser, udev, has changed its rule language somewhat.
Previously, I had the following rule:
BUS="usb",
SYSFS{product}="Palm Handheld",
KERNEL="ttyUSB[13579]",
OWNER="lemire",
GROUP="tty",
MODE="0660",
SYMLINK="m500"
Now, you need to have
BUS=="usb",
SYSFS{product}=="Palm Handheld",
KERNEL=="ttyUSB[13579]",
OWNER="lemire",
GROUP="tty",
MODE="0660",
SYMLINK="m500"
This makes perfect sense, except that there was no error message to explain the required change. So an hour later, I learned way more than I needed about a crazy piece of software.
In general, another lesson learned is that rule languages are hard and generally unfriendly. Yes, I would throw CSS into the fold.
Weird change = -> ==, and it does not seem consistent… !?! (Unless it is a difference between assumed to be constant versus variable?)
I think you have to read….
a==1, b==2,c=4
as
i( a == 1 and b == 2) then c = 4
By rule-language people hate the “if something then something else”. They work very hard not to use it.