At least udev is strongly linked to Linux and as far as I know is not available on any of the BSD flavors. Unfortunately it is now the only good way to detect storage devices, cameras, printers, scanners and other devices using a single framework. That’s why we use it in Xfce now in situations where HAL provided us with device capabilities and information to distinguish between the different device types before. The consequence is that thunar-volman no longer works without udev and thus only compiles on Linux. In Thunar itself udev remains optional.
The usual hogwash about *BSD and its “compatiblity” to Linux. Especially FreeBSD has got different mechanisms like devd etc. So it’s no problem of *BSD itself, but developers unable to do a proper job. Well, in reality *BSD-devs cannot hop around to mimic everybodies darling. It’s just impossible, especially in the face of Linux chaotic development.
The correct “solution” here is for “desktop” devs to stop using the kernel features directly and having to continuously rewrite things for udev, HAL, *Kit, u*, etc and instead to write to a standardised abstraction layer with pluggable backends. Something the KDE devs figured out with 4.0 and the creation of Solid and Phonon and similar.
So nothing spectacular, just the usual loss of reality of the Linux-community. Being portable is different from “it works in Linux”.