-
-
Notifications
You must be signed in to change notification settings - Fork 11.4k
yaz vs ICU #31830
Comments
Can reproduce. Messed around with this a bit, the only semi-relevant data I came across is that Mavericks supposedly tweaked the libicu header slightly, so it might work correctly with prior versions. Are you on 10.9, @ssp? I sent a message upstream to indexdata as well. They are generally extremely responsive. |
@asparagui: yes I am on 10.9 (but I am also seeing the same issue on my 10.7 machine with the current bottled yaz version) Yes Index Data are exceptionally responsive. I also tried asking about an issue touching this on yazlist earlier this year http://lists.indexdata.dk/pipermail/yazlist/2014-February/003863.html but my impression is that the Mac / Homebrew setup may simply not be their main focus as typical yaz deployments will probably on Linux systems anyway. (But it’s so convenient to be able to develop locally on the Mac :) |
Guess that YAZ' configure does not find ICU on homebrew. Try this Info: YAZ' configure uses icu-config in PATH and use that as basis for linking with ICU. |
Hi @adamdickmeiss, thanks for chiming in! Indeed,
OS X does not seem to come with In fact, the only ICU related files I find on a current system are:
where my understanding is that Would these files even be sufficient for yaz to build properly (no headers?) or does that mean that we really do need the icu4c package which seems to provide more standard files. If that is the case, perhaps someone more familiar with Homebrew can offer advice on how we best deal with that. |
You need ICU development libraries (case for all systems). |
To be lazy (pragmatic), it might be easiest just to add a --with-icu option that adds the icu4c dependency and a caveat about what is going on to the end-user. |
Yes, that seems reasonable. |
as discussed in Homebrew#31830 * it would be better to make this the default rather than optional * add test for yaz-icu
@asparagui That may be a pragmatic first step and I tried to improve the formula with this: https://github.com/ssp/homebrew/tree/yaz-icu However, I still see a number of issues:
|
Just to ping you again for the answers to my open questions and advice on how to proceed with this – in particular whether defaulting to using ICU support or not makes sense or not (and if so, what it breaks). My preferred solution would be to build with ICU support by default. Especially as yaz’ ICU support will be inherited by software depending on yaz (metaproxy, pazpar2, zebra). In my experience, it’s pretty much a given that you want to use ICU support in pazpar2 at least. So ensuring it’s fully functional by default seems like a good idea to me. That said: I have not seen, nor understood, the issues people seem to have had with icu4c in the past. I am happy to change my preference if these still exist and cause inconvenience for users. |
@ssp Stupid question but: what does ICU support give you in those applications? The answer to that question will mean my answer will vary from "use icu4c as a recommended dependency" or "use icu4c as an optional dependency" |
In pazpar2 (bibliographic metasearch software) the crucial use of ICU is to normalise the terms used for faceting, deduplication or sorting (search for In zebra (bibliographic index server), ICU can be used to clean and take into account language features when indexing and sorting. manual I am not sure how metaproxy uses ICU features. I also tried to find out how Index Data distribute their software in their Ubuntu packages. Things seem to be a little different there as they offer more fine-grained packages than we have in Homebrew. Yet, they always list libicu as a dependency for libyaz which is used by the packages for pazpar2, metaproxy and zebra. |
Ok, seems fair enough to be on by default. |
as discussed in Homebrew#31830 * add test for yaz-icu when building with ICU
Great. I adjusted the yaz formula to:
Is there anything else that should be done? Do we need to ensure the formulae depending on yaz are re-built when this happens to reduce the chance of inconsistent results? |
as discussed in Homebrew#31830 * add test for yaz-icu when building with ICU
as discussed in Homebrew#31830 * add test for yaz-icu when building with ICU
As there were no remarks on my questions, I assume that going forward with this is OK and submitted the changes as pull request #32261 |
as discussed in Homebrew#31830 Also: * add test for yaz-icu when building with ICU * do not use File.open for writing test configuration files
as discussed in Homebrew#31830 Also: * add test for yaz-icu when building with ICU * do not use File.open for writing test configuration files
as discussed in Homebrew#31830 Also: * add test for yaz-icu when building with ICU * do not use File.open for writing test configuration files
as discussed in Homebrew#31830 Also: * add test for yaz-icu when building with ICU * do not use File.open for writing test configuration files
as discussed in #31830 Also: * add test for yaz-icu when building with ICU * do not use File.open for writing test configuration files
Thanks for everybody’s help and guidance! I am closing this issue now that #32261 has been merged. |
There seem to have been issues about yaz vs ICU on Homebrew before (see #15377) and I’d like to bring the topic back up.
Essentially the yaz built by homebrew does not seem to support ICU properly. This can be seen by running
yaz-icu
and getting the result:This also affects other tools (e.g. pazpar2) which rely on yaz’ ICU capabilities.
I can fix the issue by adding icu4c as a dependency to the formula, but I am not sure whether this is a good idea or should be necessary.
What’s also interesting: yaz as built by Homebrew does link to OS X’s libicucore:
So it seems to find some kind of ICU related thing.
Unfortunately my understanding of build, Makefile and library finding magic is insufficient to understand what exactly is going wrong here and how it should be resolved (or whether yaz’ Makefile may be part of the problem), so I hope someone with more knowledge about these can understand what’s going on here.
Also pinging @asparagui.
The text was updated successfully, but these errors were encountered: