Also, you duplicate a lot of code in plugins/FullLightDM. What I think we should do is just build plugins/IntegratedLightDM (probably name it back to just plugins/LightDM again) twice. Producing FullLightDM.so and IntegratedLightDM.so. The only difference is that one links against our local liblightdm and one links against the real liblightdm. (You might need to have two qmldir files and a -DPLUGINCLASSNAME= define for plugin.{cpp,h}.)
You have some tiny cleanup differences in FullLightDM/DBusGreeter.cpp and .../Greeter.cpp already, that aren't captured in IntegratedLightDM. No reason to duplicate code that will bitrot.
Some inline comments.
Also, you duplicate a lot of code in plugins/ FullLightDM. What I think we should do is just build plugins/ IntegratedLight DM (probably name it back to just plugins/LightDM again) twice. Producing FullLightDM.so and IntegratedLight DM.so. The only difference is that one links against our local liblightdm and one links against the real liblightdm. (You might need to have two qmldir files and a -DPLUGINCLASSNAME= define for plugin.{cpp,h}.)
You have some tiny cleanup differences in FullLightDM/ DBusGreeter. cpp and .../Greeter.cpp already, that aren't captured in IntegratedLightDM. No reason to duplicate code that will bitrot.