Moved faq from file README.
[libidn.git] / FAQ
blobe663a677abffb51dec8ce7b11dcd012bf43b3a8f
1 Libidn FAQ -- Anticipated Frequently Asked Questions.
2 Copyright (C) 2002, 2003 Simon Josefsson
3 See the end for copying conditions.
5 Q#1: Why doesn't Libidn use a separate library for the Unicode
6      operations?
8 A#1: Separate libraries (Glib, QT, libiconv) seldom mark the Unicode
9      tables with the corresponding Unicode version they implement, nor
10      do they provide a interface where a specific version can be
11      requested.  This violates the stringprep specification which
12      requires that a specific version is used.  Also, some of these
13      third party libraries depend on non-portable behavior
14      (e.g. threads).
16 Q#2: Why do Libidn include several stringprep profiles? They waste space!
18 A#2: The stringprep profiles included are derived from the generic
19      stringprep tables, and doesn't waste more than say a few hundred
20      bytes (see profiles.c).  The Unicode normalization tables and the
21      generic stringprep tables are roughly equivalent in size,
22      although the latter tables can surely be compressed much further.
24 Q#3: I thought GNU was encouraging libraries to be licensed under the GPL?
26 A#3: The reasoning for this was for libraries that provide unique
27      functionality to encourage more free programs.  Since there are
28      several IDN libraries out there, using the GPL for Libidn would
29      only encourage people not to use Libidn which would not help the
30      spread of free software.
32 Q#4: How do I add a new stringprep profile?
34 A#4: Add the profile definition to profiles.c, create a new
35      stringprep_PROFILENAME.h header file, and add it to
36      Makefile.am. For the texinfo documentation document the header in
37      libidn.texi and for the GTK-DOC manual, add it to
38      reference/libidn-docs.sgml and document the header definitions in
39      reference/dummy.c.  If you want to add self tests, include the
40      header file in internal.h and add the self tests (easiest through
41      tst_stringprep.c).  Mention it in NEWS.
43 ----------------------------------------------------------------------
44 Copying and distribution of this file, with or without modification,
45 are permitted in any medium without royalty provided the copyright
46 notice and this notice are preserved.