There was a bit of bad planning from one of the developers here.
Let me explain in more details. The ABI is the interface between applications and libraries. The application must know how to call a specific function from a library, where it should put the parameters, etc. This is the ABI.
We normally have some “extra space” left in our ABI for future extensions. This means we make sure it is possible to add some functions or make some changes without applications noticing. This was already the case in BeOS and saved our project many times, as we added extra functionality in many places.
However, not all parts of Haiku are immediately designed in such a way. Some parts are considered “internal” and not supposed to be exposed to applications. This was once the case for BControlLook, the class which implements drawing of all graphical widgets (buttons, scrollbars, etc). At first it was used only inside the interface kit, so there was no need for applications to access it. However, some applications wanted to draw custom controls that looked like the default ones, and the simplest way to achieve that was to use BControlLook directly (with instructions such as “draw a button-like gradient here, add a tab border here, etc”.
So, BControlLook became widely used by applications. This was not too much of a problem except for occasional breakage when we made changes to it (not too often, I think the last time was when looncraz added live color change updates to the GUI). However, we should make sure such breakage don’t happen again after we release the beta, so, we should add the “extra space” to this class to make sure we can make changes to it in the future (and in particular, maybe add complete theming support someday).
So, we just did that. The new BControlLook provides an API that should last for the next decade. However, this means there is one last and large breakage to all apps which were already using it. The fix is stupidly simple: just recompile the applications, and in a few cases make minor fixes to the code (maybe 1 or 2 lines per application).
However, the developer who made the ABI change apparently has no interest in updating these apps. It seems he is happy with leaving stuff broken for a few weeks. The long term plan would be for the rebuilds to be largely automated by the package build bot, but that is not quite ready yet (it’s making a lot of progress lately, however). And, none of the other developers seem to be willing to fix the problem either. Maybe because they don’t have time, or maybe because it’s up to the one who breaks things, to fix them.