*** empty log message ***
[libidn.git] / NEWS
blob9c8575e070e47cbc332f9b1fae3782833168ebd9
1 Libidn NEWS -- History of user-visible changes.                 -*- outline -*-
2 Copyright (C) 2002, 2003, 2004 Simon Josefsson
3 See the end for copying conditions.
5 * Version 0.4.5 (released 2004-05-21)
7 ** In IDNA ToUnicode, a `free' on a stale pointer fixed by Ulrich Drepper.
9 ** Several memory leaks fixed by Ulrich Drepper.
11 ** Added more SASLPrep and NFKC test vectors.
13 ** Automake 1.8.4 is used.
15 ** API and ABI is backwards compatible with the previous version.
16 idn_free: ADD.  Wrapper around system `free'.
17 idn-free.h: ADD.  Prototype for `idn_free'.
18                 See idn-free.h for discussion.  The interface is
19                 currently not documented.  Comments and feedback is
20                 appreciated.
22 * Version 0.4.4 (released 2004-04-29)
24 ** Fixed two bugs in iSCSI definition, syncing with newly published RFC 3722.
25 The first bug was an omission of prohibiting the characters in C.1.1,
26 C.1.2 and C.7 (space characters and characters that are inappropriate
27 for canonical representation).  The second was a bug in the definition
28 of the table, causing the entire table to be skipped, of the special
29 prohibited output character table defined in RFC 3722 (see section 6,
30 the characters in the table are various ASCII characters and U+3002).
32 ** A few test vectors for iSCSI were added.
34 ** The self tests are linked with libtool -no-install to avoid wrapper script.
36 ** Separated self test utilities into a separate library, shared by all tests.
38 ** More translations.
39 Added Romanian (by Laurentiu Buzdugan).
41 ** API and ABI is backwards compatible with the previous version.
43 * Version 0.4.3 (released 2004-04-22)
45 ** Fixed a bug in table processing code to prohibit control characters.
46 The problem was that the code used a code point of 0 to indicate end
47 of table, but if (as for table C.2.1) a range starts with 0, this
48 logic would fail.  The end-of-table test is now that both the start
49 and end code points of the range is 0.  Table C.2.1 is responsible for
50 prohibiting non-ASCII control characters, i.e. ASCII 0-31 and 127.
51 Before, libidn silently accepted such strings without complaining.
53 ** A few test vectors for SASLprep were added.
55 ** The pkg-config script no longer include a -R parameter.
57 ** More translations.
58 Added Dutch (by Elros Cyriatan), and German (by Roland Illig).
60 ** API and ABI is backwards compatible with the previous version.
62 * Version 0.4.2 (released 2004-03-20)
64 ** A Punycode implementation in Java was added, by Oliver Hitz.
65 Eventually hopefully a StringPrep, Nameprep and IDNA implementation
66 will be added as well.  Currently you need to specify --enable-java to
67 enable the Java interface.  The Java sources (below java/) are
68 compiled into byte-code (not native code) into a JAR library.
70 ** More translations.
71 Added Danish (by Morten Bo Johansen), French (by Michel Robitaille),
72 Polish (by Jakub Bogusz), and Serbian (by Aleksandar Jelenak).
74 ** Norwegian TLD table added, by Thomas Jacob.
76 ** API and ABI is backwards compatible with the previous version.
78 * Version 0.4.1 (released 2004-03-08)
80 ** The user messages from the command line utility are now translated.
81 Currently English and Swedish is supported.
83 ** Logic of stringprep_locale_charset modified.
84 Future versions will use, in order, $CHARSET iff defined, nl_langinfo
85 (CODESET) iff working, or fall back to returning "ASCII".  Earlier it
86 attempted to guess the system locale, in contrast with the current
87 application's locale, via some setlocale save/set/reset magic.  This
88 change may require you to invoke setlocale() in your application,
89 which is (should be) required for non-ASCII to work anyway.  Based on
90 discussion with Ulrich Drepper.
92 ** The command-line utility now invoke setlocale (LC_ALL, "") at startup.
94 ** Fixed SASLprep tables to prohibit non-ASCII space in output.
95 Non-ASCII space has always been mapped to ASCII space, so it is not
96 clear this really have any effect, but the specification require it.
98 ** Building Libidn as part of GLIBC has been updated.
99 Refer to libc/README for more information.  Incidentally, GLIBC in CVS
100 now include a copy of Libidn.
102 ** API and ABI is backwards compatible with the previous version.
103 IDNA_DLOPEN_ERROR: ADD.  Only used internally by Libidn in libc.
105 * Version 0.4.0 (released 2004-02-28)
107 ** Support for TLD restrictions on IDN strings, contributed by Thomas Jacob.
108 Many TLDs restrict the set of characters that can be used, from the
109 full Unicode 3.2 range that is normally available.  This contribution
110 make it possible for you to test strings for TLD conformance locally.
111 The code can be disabled by --disable-tld.  If enabled (the default),
112 the new API "tld.h" is installed which can be used to check a string
113 for conformance to TLD specific rules.  This add a new self test, and
114 a new chapter in the manual.  People responsible for maintaining TLD
115 tables are hereby encouraged to contribute them (under reasonable
116 licensing terms) for inclusion in future versions of Libidn.  Be
117 warned that the API for TLD checking may change throughout the 0.4.x
118 series as we get feedback on it.
120 ** Kerberos 5 stringprep profile macro is no longer documented.
121 The macro itself will probably be removed in the future, if the
122 specification is dropped from the Kerberos WG agenda.
124 ** API and ABI is backwards compatible with the previous version.
125 stringprep_kerberos5: DEPRECATED.
126 Tld_table_element:
127 Tld_table:
128 Tld_rc: ADD.  New data types.
129 tld_get_4:
130 tld_get_4z:
131 tld_get_z: ADD.  New functions to extract TLD from string.
132 tld_get_table:
133 tld_default_table: ADD.  New functions to get TLD table from TLD name.
134 tld_check_4t:
135 tld_check_4tz: ADD.  New function to provide core TLD operations.
136 tld_check_4:
137 tld_check_4z:
138 tld_check_8z:
139 tld_check_lz: ADD.  New functions that combine all TLD operations in one call.
141 * Version 0.3.7 (released 2004-01-22)
143 ** The command line parameter '--' idiom is documented.
145 ** The iSCSI stringprep profile now recognized as "iSCSI".
146 The earlier name "ISCSIprep" is still recognized, for backwards
147 compatibility.
149 ** DocBook manuals no longer included (the tools are too unstable).
151 ** API and ABI is backwards compatible with the previous version.
153 * Version 0.3.6 (released 2004-01-06)
155 ** The manual now contain a troubleshooting section for the command line tool.
157 ** The PHP interface pass the string directly on the command line.
159 ** The macro that create 'idn-int.h' has been updated to latest version.
161 ** API and ABI is backwards compatible with the previous version.
163 * Version 0.3.5 (released 2003-12-15)
165 ** The program 'idn' accepts input strings directly on the command line.
167 ** The program 'idn' defaults to --idna-to-ascii if no parameter is given.
169 ** The program 'idn' now print user instructions before waiting for input.
171 ** DocBook HTML output not included any longer.
172 The reason is that the filenames generated by docbook2html appear to
173 be rather random, so it is difficult to maintain the Makefile.am rules
174 for them.
176 ** Autoconf 2.59, automake 1.8 and libtool from CVS is used.
178 ** API and ABI is backwards compatible with the previous version.
179 IDNA_CONTAINS_NON_LDH: ADD.  Same integer value as IDNA_CONTAINS_LDH.
180 IDNA_CONTAINS_LDH: DEPRECATED.  LDH (letter-digits-hyphens) characters
181                 are not an error, but non-LDH characters are, when
182                 IDNA_USE_STD3_ASCII_RULES is used.  The logic of the
183                 mnemonic name of this error constant was reversed.
185 * Version 0.3.4 (released 2003-11-09)
187 ** DocBook manuals in XML, PDF, PostScript, ASCII and HTML formats included.
189 * Version 0.3.3 (released 2003-10-18)
191 ** Fixed list of Stringprep profiles in 'idn --help' and 'idn.php'.
193 ** Fixed debug information in 'idn'.
195 ** Internal improvements.
196 Leads to reduced heap memory usage.  Simplified inter-dependency among
197 files in lib/* to make it easier to copy them into your project.
199 ** Debugging stringprep profile 'generic' removed.
201 ** Punycode implementation updated to rfc3492bis-00.
203 ** API and ABI is backwards compatible with the previous version.
204 stringprep_4i: NEW.
205 stringprep_4zi: NEW.
206 stringprep: CHANGED. 'profile' is marked as 'const'.
207 stringprep_profile: CHANGED. 'profile' is marked as 'const'.
208 stringprep_generic: REMOVED. Never meant for public use.
210 * Version 0.3.2 (released 2003-10-07)
212 ** SASL ANONYMOUS stringprep profile "trace" added.
213 It is equivalent to the already supported "plain" SASL ANONYMOUS
214 stringprep profile, except for the name.
216 ** API and ABI is backwards compatible with the previous version.
217 The 'in' parameter to stringprep_profile was changed from 'char*' to
218 'const char*'.
220 * Version 0.3.1 (released 2003-10-02)
222 ** Fixed handling of implicit and explicit zero-length root labels in ToASCII.
224 ** Fixed support for Hangul Syllables during Unicode NFKC normalization.
226 ** Fixed Unicode NFKC normalization of (some) BMP code points.
227 This was done by syncing the NFKC code with latest GLIB, and may have
228 fixed other bugs in the earlier versions of the updated functions.
230 ** Added more IDNA test vectors.
232 ** Emacs Lisp IDNA implementation now set the UseSTD3ASCIIRules flag.
233 This is the appropriate setting for mail-related uses of IDNA.
235 ** API and ABI is backwards compatible with the previous version.
237 * Version 0.3.0 (released 2003-09-23)
239 ** Ported to Mac OS X.
241 ** Gnulib code removed, we now assume a C89 compatible environment.
243 ** Building libidn as a libc add-on now works again.
245 ** Man pages for all public API functions are included.
247 ** Fixed bug in SASLprep profile.
249 ** API and ABI is NOT backwards compatible with the previous version.
250 All previously labeled (since 0.1.x) obsolete functions have been dropped.
251 The use of 'enum' types instead of 'int' added in 0.2.3 reverted, it
252 confused documentation generators and wasn't all that common practice.
254 * Version 0.2.3 (released 2003-08-26)
256 ** Example 4 was the same as example 3, now changed to demo ToUnicode.
258 ** Documentation improvements.
260 ** Prototype cleanups.
261 The proper enum types (Stringprep_rc, Idna_rc, etc) are now used in
262 several places where plain int where used before.  String lengths are
263 handled by (s)size_t instead of int.
265 ** API and ABI is backwards compatible with the previous version.
267 * Version 0.2.2 (released 2003-08-13)
269 ** Fixed problem with strings longer than 4GB in punycode functions.
270 The punycode code cannot handle strings longer than 4GB.  The code now
271 return PUNYCODE_BAD_INPUT on too long input, instead of failing in an
272 unknown way.
274 ** The "idn --idna-to-unicode" command now output locale encoded strings.
276 ** Build fixes, bug fixes.
278 ** API and ABI is backwards compatible with the previous version.
280 * Version 0.2.1 (released 2003-07-04)
282 ** Don't reject zero-length trailing labels as in, e.g., "www.example.org.".
283 The IDNA RFC is not clear on this topic, zero-length labels in general
284 are forbidden by the ToASCII algorithm in section 4.1 step 8, but the
285 terminology section define, inside a parenthesis, that the zero-length
286 root label is in fact not considered a label at all in IDNA.
288 ** Bug fixes.
290 ** API and ABI is backwards compatible with the previous version.
292 * Version 0.2.0 (released 2003-06-19)
294 ** Unicode code point data is now uint32_t, defined in "idn-int.h".
295 A header file "idn-int.h" is generated and installed to make sure the
296 "uint32_t" data type is available on all platforms.  The reason for
297 this change is that on 64-bit platforms, the application was required
298 to convert 32 bit integers (which is how Unicode code points are
299 typically represented) into 64 bit integers before calling libidn
300 functions.
302 ** New idna_*() functions have improved flags handling.
303 The allowunassigned and usestd3asciirules parameters were collapsed
304 into a flags parameter, that can take on the IDNA_ALLOW_UNASSIGNED and
305 IDNA_USE_STD3_ASCII_RULES values.  This allows for easier extensions
306 to support, e.g., Unicode 4.0 or RFC 952 ASCII rules checking.  Note
307 that the old entry points are unmodified (in this regard), and new
308 entry points with this modification were added.
310 ** The manual was moved into a separate directory doc/.
312 ** Bugfixes.
314 ** API and ABI is not backwards compatible.
315 In punycode.h and stringprep.h the "unsigned long" data type was
316 changed into "uint32_t", which cause a API and ABI missmatch.  For
317 idna.h, the old entry points that used "unsigned long" still exist,
318 and new entry points that uses "uint32_t" was added.  To update your
319 application, you probably only need to change "unsigned long" to
320 "uint32_t".  As a result of these changes, the shared object version
321 has been increased.
323 * Version 0.1.15 (released 2003-06-07)
325 ** Bugfixes.
327 ** API and ABI is backwards compatible with the previous version.
329 * Version 0.1.14 (released 2003-05-10)
331 ** Experimental documentation generation in contrib/doxygen/.
332 Simply invoke "doxygen" in that directory and it should build the
333 documentation.
335 ** Lisp API bug fixes.
337 ** API and ABI is backwards compatible with the previous version.
339 * Version 0.1.13 (released 2003-03-13)
341 ** Unfinished Java *.class files implementing the libidn API.
342 See the contrib/java/ directory.  It is implemented using the Java
343 Native Interface, and light initial testing indicate interoperability
344 between GCJ, IBM's JDK and Sun's JDK.
346 ** Building is now silent when gengetopt is not present.
348 ** Bug fixes.
350 ** API and ABI is backwards compatible with the previous version.
352 * Version 0.1.12 (released 2003-03-06)
354 ** Building libidn doesn't require gengetopt.
355 Warnings are still printed though.  Gengetopt will be replaced by argp
356 eventually.
358 ** Command line tool "idn" supports stringprep too.
360 ** New stringprep API entry point: stringprep_profile().
361 It takes a name of the stringprep profile as an argument instead of
362 the stringprep table structure.
364 ** stringprep_*.h are deprecated and will be removed in the future.
365 All symbols have been moved to stringprep.h.  The reasons are that (1)
366 the files typically only defined one CPP macro and exported one symbol
367 definition, which is wasteful as it generates too much work in the
368 manual, and (2) using one header file for all profiles allows easier
369 access to all stringprep profiles during runtime.  Note that the files
370 are still installed, but they only #include stringprep.h now, for
371 backwards compatibility.
373 ** GNU Libc add-on build instructions updated to GNU Libc 2.3.2.
375 ** SASLprep stringprep profile added.
377 ** An online interface to libidn written in PHP added to contrib/web/.
379 ** API and ABI is backwards compatible with the previous version.
381 * Version 0.1.11 (released 2003-02-26)
383 ** Command line application "idn" is included.
384 A simple wrapper around the library that allows you to invoke punycode
385 encoding/decoding and IDNA ToASCII/ToUnicode on the command line.
387 ** Emacs Lisp interface for punycode and IDNA included.
388 See punycode.el and idna.el.
390 ** API and ABI is backwards compatible with the previous version.
392 * Version 0.1.10 (released 2003-02-21)
394 ** idna_*_to_ace() and idna_*ace_to_*() are deprecated in favor of
395 ** idna_to_ascii_from_*() and idna_to_unicode_*_from_*() respectively.
396 The reason was that the old interfaces did not accept the
397 AllowUnassigned and UseSTD3ASCIIRules flags.  Note that the old
398 functions are not removed, but will be in the future.
400 ** IPS iSCSI stringprep profile added.
402 ** A new contrib/ directory added.
403 Currently it contains a Python interface to Libidn, contributed by
404 Stephane Bortzmeyer.
406 ** idna.h and punycode.h are now installed by "make install".
408 ** API and ABI is backwards compatible with the previous version.
410 * Version 0.1.9 (released 2003-02-20)
412 ** SASL ANONYMOUS "plain" stringprep profile added.
414 ** XMPP nodeprep profile fixed.
416 ** API and ABI is backwards compatible with the previous version.
417 For future releases, the NEWS entry will specifically mention whether
418 the C header API or library ABI backwards compatibility is affected.
420 * Version 0.1.8 (released 2003-02-14)
422 ** Portability fixes.
423 This includes not building the API Reference Manual with GTK-DOC by
424 default, if you want it use configure parameter --enable-gtk-doc after
425 making sure your gtkdoc-mkdb accept the --tmpl-dir parameter.
427 ** The type for string length variables is now (s)size_t.
428 Unfortunately this means binary shared library binary backwards
429 compatible is lost.
431 ** New nameprep test vectors.
433 * Version 0.1.7 (released 2003-02-12)
435 ** Uses official IDNA ACE prefix.
437 * Version 0.1.6 (released 2003-02-11)
439 ** Uses tentative IDNA ACE prefix.
441 ** Added XMPP Node/Resource Identifiers stringprep profiles.
443 ** Fixed prohibited character checks for bidi.
445 * Version 0.1.5 (released 2003-01-28)
447 ** The library can now be built as part of GNU Libc.
448 This is experimental and only tested against GNU Libc version 2.3.1.
449 See the libc/ directory, and libc/README in particular.
451 ** Bug fixes.
453 * Version 0.1.4 (released 2003-01-15)
455 ** Documentation fixes.
457 ** Portability fixes.
459 ** Bug fixes.
461 * Version 0.1.3 (released 2003-01-15)
463 ** Added texinfo manual.
465 * Version 0.1.2 (released 2003-01-08)
467 ** Added high-level IDNA API.
469 ** Added example3.c and example4.c demonstrating the high-level IDNA API.
471 * Version 0.1.1 (released 2003-01-08)
473 ** Added documentation using GTK-DOC.
475 ** The obsolete stringprep_utf8_to_ucs4_fast API entry point was removed.
476 By accident it was never removed in 0.1.0.
478 * Version 0.1.0 (released 2003-01-05)
480 ** Official GNU project.
482 ** Renamed from libstringprep to libidn.
484 ** Supports punycode and IDNA.  Caveat emptor: I don't use it myself.
486 ** Uses "unsigned long" for Unicode code points instead of "long".
487 Long is guaranteed to be at least 32 bits by C standards so it is
488 always sufficiently large, no need to use uint32_t and the like.
490 ** The obsolete stringprep_utf8_to_ucs4_fast API entry point was removed.
492 * Version 0.0.8 (released 2002-12-13)
494 ** Portability fixes (now works under Cygwin on Windows 2000).
496 ** Bug fixes.
498 * Version 0.0.7 (released 2002-12-09)
500 ** Apply all tables to entire strings, not just first hit.
502 ** Fix bidi infloop.
504 * Version 0.0.5 (released 2002-12-07)
506 ** Fix prohibited characters handling.
508 ** Fix bidi.
510 ** Renamed type (struct) stringprep_table_element to Stringprep_table_element.
512 ** Renamed type stringprep_profile to Stringprep_profile.
514 ** Renamed type (struct) stringprep_table to Stringprep_table.
516 ** Added more self-tests.
518 * Version 0.0.4 (released 2002-12-06)
520 ** Add unassigned code point handling, including self test cases.
522 ** Portability fixes.
524 * Version 0.0.3 (released 2002-11-30)
526 ** Exported utility function `stringprep_utf8_to_unichar', complementary
527 to existing `stringprep_unichar_to_utf8'.
529 ** Renamed `stringprep_utf8_to_ucs4_fast' to `stringprep_utf8_to_ucs4' to
530 clean up API. The old entry point is maintained for binary backwards
531 compatibility though.
533 ** The distribution is from now on signed using GnuPG.
535 ** Bug fixes.
537 * Version 0.0.2 (released 2002-11-07)
539 ** NFKC self test.
541 ** Bug fixes.
543 * Version 0.0.1 (released 2002-11-06)
545 ** Add utility functions stringprep_locale_charset(), stringprep_convert() 
546 and stringprep_locale_to_utf8 () that can be used to convert text from
547 system's locale into UTF-8, which should be done before invoking
548 stringprep().  The functions requires iconv() in the operating system.
550 ** An example program (example.c) that illustrates how libstringprep can be
551 used is included.
553 ** The pkg-config --libs output should now include necessary -R options.
555 * Version 0.0.0 (released 2002-11-05)
557 ** Initial release
559 ----------------------------------------------------------------------
560 Copying and distribution of this file, with or without modification,
561 are permitted in any medium without royalty provided the copyright
562 notice and this notice are preserved.