If package X doesn't only depends on FPC, but also on Lazarus units (like lclintf), then that just means those ALSO compile those units with -Ur on both sides.
Well, the 3rd party offering the ppu can not affect this.
They can only build against whatever the Lazarus release contains.
LCLIntf is not build with -Ur
But....
If you build a project, or even your own package, then LCLIntf units are not rebuild. And fpc can not choose to do so. Fpc will not even see the LclIntf sources, Lazarus only hands over the path to the ppu of that package.
Fpc will only see a package pas sources, if that package is explicitly recompiled. (And if that happens, the -Ur is probably of little good, because the user wants it to happen).
Lazarus will recompile a package, if
- you choose so from the packages own window
- You explicitly choose "recompile parent packages" in a depended package,
- You build Lazarus with "all clean"
- You made changes to the source.
A simple patch eg. svn number change and a recompile can change this
Is a change to the source. It requires the rebuild, and therefore breaks the dependent ppu.