Re: CURRENT && /usr/ports

From: Kostik Belousov <kostikbel_at_gmail.com>
Date: Thu, 26 May 2011 18:58:19 +0300
On Thu, May 26, 2011 at 10:16:15AM -0400, b. f. wrote:
> Matthias Apitz:
> ...
> > I'm running -CURRENT on my laptop (r220692 from ~mid of April) and
> > /usr/ports from CVS from the same day; I want from time to time (let's
> > says once a week) SVN update my kernel and userland; I know that these
> > two should be in sync, but what about the ports? I have installed around
> > 1200 ports I'm used to use. Is there any special note in /usr/src/UPDATING
> > when the ABI changes and would break the compiled ports?
> 
> There is a lot of relevant information in UPDATING, but this file
> doesn't focus on ports, and some changes that affect ports aren't
> mentioned. You can find some workarounds or IGNORE settings in
> individual port Makefiles based upon OSVERSION, some open PRs which
> describe known problems (and, occasionally, solutions), and a partial
> list of problems at:
> 
> http://wiki.freebsd.org/PortsBrokenOnCurrent
> 
> (but this last listing is somewhat incomplete and out-of-date). You
> can also find build logs at:
> 
> http://pointyhat.freebsd.org/errorlogs/
> 
> Efforts to find and fix these problems will accelerate after the
> slush/freeze that will precede the release of FreeBSD 9.

[With the re hat on]

The policy that we are trying to follow with regard to the userland ABI
in the project is that
- the libraries that already provide symbol versioning shall not break
  ABI backward-compatibility under any circumstances. The list of such
  libraries includes libc, libpthread, libm and libstdc++. There are other
  libraries that also implement symbol versioning, but they are supplied
  by third parties, and we rely on the upstream projects to not break
  the guarantee (mostly).
- for not versioned libraries, it is a developer responsibility to bump
  .so major version upon ABI breakage.

Sure, there is much more to the system ABI besides ABI provided by the
system libraries, e.g. the list of available binaries etc. But this
should cover 98% of the all the needs of the typical application.

What you cannot rely on when using HEAD, is the ability to partially
upgrade the ports installed. The reason is mostly in the need of
bump for the non-versioned libraries. But again, the basic C runtime
is versioned and should provide enough stability.

Received on Thu May 26 2011 - 13:58:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:14 UTC