[haiku-bugs] Re: [Haiku] #13258: yab error on Hrev50906

  • From: "pulkomandy" <trac@xxxxxxxxxxxx>
  • Date: Mon, 30 Jan 2017 10:21:59 -0000

#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.

Other related posts: