On 02.11.22 00:57, Thomas Munro wrote:
> 3. Library availability. This is a problem for downstream
> communities to solve. For example, the people who build Windows
> installers might want to start bundling the ICU versions from their
> earlier releases, the people involved with each Linux/BSD distro would
> hopefully figure out a good way to publish the packages from older OS
> releases in one repo, and the people running managed systems probably
> do their own packaging anyway, they'll figure it out. I realise that
> you are involved in packaging and I am not, so we probably have
> different perspectives: I get to say "and here, magic happens!" :-)
I made a Homebrew repository for ICU versions 50 through 72:
https://github.com/petere/homebrew-icu
All of these packages build and pass their self-tests on my machine. So
from that experience, I think maintaining a repository of ICU versions,
and being able to install more than one for testing this feature, is
feasible.
Now I have started building PostgreSQL against these, to get some
baseline of what is supported and actually works. The results are a bit
mixed so far, more to come later.
The installation instructions currently say that the minimum required
version of ICU is 4.2. That was the one that shipped with RHEL 6. I
think we have de-supported RHEL 6 and could increase that. The version
in RHEL 7 is 50.
(My repository happens to start at 50 because the new versioning system
started at 49, but 49 doesn't appear to be tagged at the icu github site.)
Note: Recent versions of libxml2 link against icu. This isn't a
problem, thanks to the symbol versioning, but if you get libxml2 via
pkg-config, you might get LDFLAGS from not the icu version you wanted.