[darcs-users] new libicu dependency

Eric Kow kowey at darcs.net
Thu Dec 24 09:59:30 UTC 2009

Jason brought up some good points that I thought I should address.

The key issue here seems to be difficulty installing the package on
Windows. I'll request comment from Salvatore.

Why we use libicu
[Moved up from later portion of the mail]

> What does libicu provide that we care about?

Reinier is the best person to answer this.  In the meantime, my
understanding is that it provides for Unicode normalisation.  The issue
is that even when you're using Unicode, there can be more than one valid
internal representation of a character.  We need to do normalisation in
some places to make sure we do not get any spurious inequalities.

For example, the c with a cedilla could be represented either as the
single 'ç' or as plain old 'c' plus a cedilla diacritic.  There are
other kinds of equivalences too, for example, the order of diacritics
for characters that have more than one (eg in Vietnamese).  Luckily,
Unicode also defines equivalences and normal forms for the above.  In
this patch, Reinier has chosen the NFC form, which basically gives us
the composed form (eg. ç) wherever applicable.

New non-hackage library heads-up
Yes, it's a good idea to send a heads up when introducing non
cabal-installable dependencies.

Pushing patches may be a good time to do it, but then that doesn't
allow much time for discussion, so I guess it's really up to the
reviewer (in this case me, sorry) to make sure it's OK and post an

For Linux (Debian based), I just install the package 'libicu-dev'
There is a MacPorts package for OS X too, I believe.

On Thu, Dec 24, 2009 at 00:19:18 -0800, Jason Dagit wrote:
> I still don't understand why we require libicu.  When Eric asked if it would
> be a problem for windows only Reinier replied:
> http://lists.osuosl.org/pipermail/darcs-users/2009-November/022166.html

Windows installability
> The versions I could find for windows are here:
> http://download.icu-project.org/files/icu4c/4.2.1/icu4c-4_2_1-Win32-msvc9.zip
> http://download.icu-project.org/files/icu4c/4.2.1/icu4c-4_2_1-Win64-msvc9.zip
> Those are compiled with mscv9 instead of gcc.  Will this create problems?
> Why do windows users have to become second class again?  As in, I thought we
> had an install story for them: Install Haskell Platform, cabal install
> darcs.  Done.  Now it involves some messy details about getting the right
> copy (32bit vs. 64bit) of an external library.  And it doesn't come with an
> installer!

[Moved up from a later part of Jason's email]
> If so then if we are going to make darcs require it
> on windows we should start packaging the library with darcs.  If we don't
> distribute it with darcs itself then can we handle it like zlib where we
> depend on a hackage package that _provides_ the library on the platforms for
> which it doesn't exist?

Salvatore: during the hacking sprint, you brought up the goal of
distributing an official Darcs 2.4 binary.  Will this make life
difficult for you?

Also, do you any time to help us figure out how to make it easy for
Windows users to build from source now that we have this dependency?

License compatibility
> Here is a link to the license:
> http://source.icu-project.org/repos/icu/icu/trunk/license.html
> Is it GPL compatible?

I'll let the ICU FAQ answer that one.

| The ICU projects since ICU 1.8.1 and ICU4J 1.3.1 are covered by the ICU license
| , a simple, permissive non-copyleft free software license, compatible with the
| GNU GPL.   The ICU license is identical to the version of the X license that
| was formerly available at http://www.x.org/Downloads_terms.html . (This site no
| longer exists, but can still be retrieved through internet archive services)
| The ICU license is intended to allow ICU to be included both in free software
| projects and in proprietary or commercial products.

> I see that hackage has text-icu but that package
> does not provide the library.  Instead, it assumes it exists (I checked the
> tarball on hackage).

Note also that in his reply to my first review, Reinier found that text-icu
did not work for him.

Can the Unicode stuff go in?
> Please rollback this patch until we resolve the issue of how to distribute
> libicu to our users.

Let's hold on for a moment.

Reinier and I agree that the Unicode stuff can go in later (eg. Darcs
2.5) rather than sooner (Darcs 2.4), so rest assured there is no
pressure and we can roll this stuff back before the freeze if we really
need to.

Let's clarify the Windows issue first.  If we don't have a clear picture
by the time the freeze comes, we should indeed roll this back.

Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow>
PGP Key ID: 08AC04F9
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.osuosl.org/pipermail/darcs-users/attachments/20091224/9dae5c21/attachment.pgp>

More information about the darcs-users mailing list