I did understand what the issue referred to in the Xfce 4.8 release announcement. Several new and modern lower-level frameworks are designed for Linux, with no equivalent available on the BSDs - let alone compatible ones. This development is of particular concern for developers that get the most use out of these frameworks, such as those working on desktop environments.
"As some of you may recall is that HAL, the hardware abstraction layer that has for the past few years been used for volume and power management as well as a few other things, has been deprecated and replaced by a variety of frameworks," Pohlmann details, "Today there is udev for device information, udisks for volume management, upower for power management as well as ConsoleKit and PolicyKit for session and permission control."
None of these fancy new frameworks work on BSD, since they are all designed to work specifically on Linux. The end result of this is that an environment like Xfce, which implements support for these, will have considerably reduced functionality when run on anything else. According to Pohlmann, this is seriously hurting the portability of Xfce.
"For 2-3 years now all this has been a big mess," Pohlmann believes, "New frameworks were invented, dropped again, renamed from *Kit to u* and somewhere on the way it became impossible to keep Xfce as portable as it was before. I know that this is nothing new and that BSD folks faced the same situation as they do now back when HAL was invented but I don't think it has to be this way."
He is not aware of a solution, though, making it problematic for Xfce to be fully functional on BSD. I'm not entirely sure where I personally stand on this - after all, it is not the responsibility of Linux developers to take the BSDs into account. In the end, it's the BSD developers' task to provide the equivalent frameworks on their own operating systems.
Still, it would be nice if some sort of solution can be devised, since it's a shame that the BSDs can't enjoy Xfce to its fullest potential. Since I'm not entirely versed in this subject - how do GNOME and KDE handle this?