#13258: yab error on Hrev50906
-------------------------+----------------------------
Reporter: michel | Owner: nobody
Type: bug | Status: closed
Priority: normal | Milestone: Unscheduled
Component: - General | Version: R1/Development
Resolution: fixed | Keywords:
Blocked By: | Blocking:
Has a Patch: 0 | Platform: All
-------------------------+----------------------------
Comment (by pulkomandy):
The haiku package has version info, which should be used for that. See
#10289 for how it is managed.
It changes at every hrev, however.
For R2 the plan would be to add soname versionning to the system libraries
(libbe.so, whch would likely be split into one lib for each kit). We would
bump the soname on changes to indicate that applications are not
compatible anymore (and try to not do this too often). This would even
allow multiple versions of the libs to coexist on the same system (so old
apps can use old libs). It is unfortunately not possible to do that while
staying compatible with BeOS (apps expect a single, unversionned,
libbe.so).
We can experiment with adding an haiku_private provides to the Haiku
package, but I would much prefer getting things in shape, releasing the
beta, and using and bumping the version of the package instead.
Also, I'm not sure blocking the install of applications is the way to go.
The private API is rather large parts of the OS (BControlLook, all the
framework for HTTP, and the new MediaClient that Barrett is working on).
There are breakage and changes all the time. So, an app which would
otherwise run fine (because it uses only parts of the private API which
didn't change), would be rejected at install time.
I think with a stable branch based on beta1, we can simply enforce a
stricter "don't break things" rule, and before integrating patches there,
require people to include all the required compatibility symbols needed
(whenever possible - I have changes to the HTTP kit I will commit soon,
that are not easy to cover with just adding some symbols). And, we should
see about moving as much of BPrivate as possible to libshared.a or other
static libraries, allowing apps to use a set and fixed version, and not
suffer about changes while the API is still work in progress. This way the
existing binaries continue to run, and the problem is detected only at
buidl time (when compiling the app against new headers), leaving to
developers the task of investigating and fixing the problem. Nothing
should get into shared libs before its API is done and the ABI future-
proofed with appropriate FBC padding, etc, allowing it to last for a few
years.
--
Ticket URL: <https://dev.haiku-os.org/ticket/13258#comment:11>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.