omniti-labs / omnios-build

Build system for OmniOS - Note, this is a quasi-private archive for OmniTI, you probably want https://omniosce.org
Other
39 stars 136 forks source link

update ncurses to 6.0 #81

Closed lotheac closed 8 years ago

lotheac commented 8 years ago

ncurses 6.0 has been out for a while (http://invisible-island.net/ncurses/announce.html). It changes the ABI, so we should probably ship the previous ABI version as well to not break existing binaries. This PR does so: so.5.9 and so.6.0 versions are both shipped, with the unversioned .so being a link to the latter (which makes existing binaries work while making new builds use the new version). According to the announcement, symbol versioning is also supported now but I couldn't get it to build at all when configured with-versioned-syms.

Of note is also that, unlike 5.9, enable-widec configuration on 6.0 adds the "w" suffix to the library name (eg. "ncursesw"). libncurses.so on OmniOS has been built with enable-widec since commit 48608a5946daf0683149ee1f87c91308f2dccd9a and that hasn't been a problem, so I don't suppose there's a reason to build a non-wide version and a wide version separately for 6.0 either, hence 'disable-lib-suffixes'.

I tested the updated package with vim, and both existing and newly built binaries work (and the latter links to libncurses.so.6 instead of .so.5).

Not sure about a deprecation plan for the old ABI version libraries, but I do think it's simpler to ship both versions in the same package.

danmcd commented 8 years ago

Super patch Tuesday (Perl & OpenSSL) will delay me reviewing this. Keeping the old binary around is useful, I agree.

lotheac commented 8 years ago

Rebased.