LMS-Community / slimserver-vendor

Third-party software used with Lyrion Music Server
https://lyrion.org
42 stars 68 forks source link

feat(ICU): Upgrade ICU to 58.2, necessary collation and build patches. #28

Closed fsbruva closed 7 years ago

fsbruva commented 7 years ago

This upgrades the ICU library and associated collation files to ICU 58.2, as well as provides repeatable instructions for creation of the collation file with arbitrary ICU versions. Additionally, this commit adds the necessary patches for ICU to build with FreeBSD, tested on 7.2 and 11.1. Several code corrections were made to correctly identify the compiler in use, warn of a compiler mismatch between buildme.sh and perl, halt for incompatible compiler versions or unkonwn compiler types. ICU 58.2 requires std=c99 support, so this is the primary factor to consider when evaluating compiler compatibility. The IO::Interface test was disabled if the build is being conducted in a FreeBSD jail, because the test requires 1o0 to be 127.0.0.1. Lastly, a DBD::SQLite + ICU build patch was added to enable build when the c++ library is -lc++ (instead of -lstdc++). The tests to determine which c++ library is in use (and thus control patch application) were also added to buildme.sh.

fsbruva commented 7 years ago

This also addresses Issue #16. Going to ICU 59.1 requires a compiler with std=c++11 support. That means GCC above 4.8, and clang above 3.3. For this reason, 58.2 was chosen, as it affords maximum compatibility with older OS's and compilers.

mherger commented 7 years ago

@fsbruva - you have several pull requests. Are any of the redundant?

fsbruva commented 7 years ago

@mherger - Yes, there were two. I have closed them. This PR addresses the ICU version (and consequential build) issue, but ignores Perl 5.26 for now (you seemed reluctant when I offered up the Perl 5.26 binaries over in slimserver).

fsbruva commented 7 years ago

@mherger - This PR predated the last 10 or so commits. Tonight I will push a commit that resolves the resulting merge conflict.