[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#633837: libidn11: German ß (LATIN SMALL LETTER SHARP S) should no longer be converted to ss



Christian Hammers <chammers@netcologne.de> writes:

> On Thu, 14 Jul 2011 10:24:46 +0200
> Simon Josefsson <simon@josefsson.org> wrote:
>
>> Christian Hammers <chammers@netcologne.de> writes:
>> 
>> > Package: libidn11
>> > Version: 1.15-2
>> > Severity: normal
>> >
>> >
>> > Quoting
>> > http://www.denic.de/en/domains/internationalized-domain-names/sharp-s.html
>> > "Since 4 August 2010, the IDNAbis standard allows the Latin small
>> > letter sharp s –
>> > also known as "Eszett" or "sharp s" ("ß") – to be used as part of
>> > a domain name"
>> >
>> > The IDN library (1.15 as well as 1.22 from unstable) still
>> > converts it to "ss":
>> >
>> >     $ idn --quiet --idna-to-ascii baß.de
>> >     bass.de
>> >
>> > Changing the behaviour will of course break backwards compatibility but
>> > as the compatibility was broken by the IDNA standard itself, the library
>> > should continue to follow the standard (at least in methods that have
>> > "idna" in their name).
>> 
>> Hi Christian.  libidn.so implements the old IDNA standard, retroactively
>> called IDNA2003.
>> 
>> The page above talks about IDNAbis, or usually called IDNA2008, which
>> libidn.so and idn don't support.  IDNA2008 and IDNA2003 are not
>> compatible.
>> 
>> The GNU Libidn project contains another library and tool, libidn2 and
>> idn2, which implements the IDNA2008 algorithm.  It works like this:
>> 
>> jas@latte:~$ idn2  baß.de
>> xn--ba-hia.de
>> jas@latte:~$ 
>> 
>> So I believe your request should be re-categorised as 1) a request to
>> package libidn2, and 2) modify any applications you are concerned with
>> to support it.  If you just want to do the conversions on the command
>> line, 1) will suffice.
>> 
>> I'll see if I can get some packaging up and running...
>
> I would rather have libidn2 treated just as an update to libidn11 i.e.
> package "idn (2.0)", "libidn-dev (2.0)" and "libidn20 (2.0)" that
> replace the current /usr/bin/idn tool in the next Debian release.
> (or libidn2 if the linker figures correctly that it is newer than 
> libidn11)

That won't work -- IDNA2003 and IDNA2008 are fundamentally (at the
specification level) so different that you can't replace one with the
other.  The APIs of the libraries are also different.

Further, IDNA2003 will continue to be useful in parallel to IDNA2008,
and vice versa.

/Simon



Reply to: