This is to announce libidn-1.43, a stable release.

GNU Libidn is a fully documented implementation of the Stringprep,
Punycode and IDNA2003 specifications.  Libidn's purpose is to encode and
decode internationalized domain name strings.  There are native C, C#
and Java libraries.  Be aware that IDNA2003 and libidn are primarily for
historic or compatibility use, and libidn2 is the successor with
IDNA2008 and Unicode TR46 implementation and also provides a
compatibility layer for GNU libidn.

There have been 67 commits by 1 people in the 62 weeks since 1.42.

See the NEWS below for a brief summary.

Thanks to everyone who has contributed!
The following people contributed changes to this release:

  Simon Josefsson (67)

Happy hacking,
Simon
==================================================================

Here is the GNU libidn home page:
  https://www.gnu.org/software/libidn/

Manual:
  https://www.gnu.org/software/libidn/manual/
  https://www.gnu.org/software/libidn/manual/libidn.html - HTML format
  https://www.gnu.org/software/libidn/manual/libidn.pdf - PDF format

API Reference manual:
  https://www.gnu.org/software/libidn/reference/intro.html - GTK-DOC HTML

Doxygen documentation:
  https://www.gnu.org/software/libidn/doxygen/index.html - HTML format
  https://www.gnu.org/software/libidn/doxygen/libidn.pdf - PDF format

JavaDoc output for the Java API:
  https://www.gnu.org/software/libidn/javadoc/

Here are the compressed sources and a GPG detached signature:
  https://ftp.gnu.org/gnu/libidn/libidn-1.43.tar.gz
  https://ftp.gnu.org/gnu/libidn/libidn-1.43.tar.gz.sig

Here is minimal source-only "git archive" sources:
  https://ftp.gnu.org/gnu/libidn/libidn-v1.43-src.tar.gz
  https://ftp.gnu.org/gnu/libidn/libidn-v1.43-src.tar.gz.sig

Here are Sigsum Proofs:
  https://ftp.gnu.org/gnu/libidn/libidn-1.43.tar.gz.proof
  https://ftp.gnu.org/gnu/libidn/libidn-v1.43-src.tar.gz.proof

Use a mirror for higher download bandwidth:
  https://www.gnu.org/order/ftp.html

Here are the SHA1 and SHA256 checksums:

  80e9f28762544bf7da490ab4b1a92e725da6ce61  libidn-1.43.tar.gz
  vcZiwS0EGyU50OY486bnQRMM2zOmRO80lpY6RDSC0WQ=  libidn-1.43.tar.gz

  8a577ee259ee9e7d88782ff75f10cc5a225442b3  libidn-v1.43-src.tar.gz
  j487LWvTwE6pZyAxs17sY0IMZeDFmqjbhyRHXR3IZdI=  libidn-v1.43-src.tar.gz

Verify the base64 SHA256 checksum with cksum -a sha256 --check
from coreutils-9.2 or OpenBSD's cksum since 2007.

Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify libidn-1.43.tar.gz.sig

The signature should match the fingerprint of the following key:

  pub   ed25519 2019-03-20 [SC]
        B1D2 BD13 75BE CB78 4CF4  F8C4 D73C F638 C53C 06BE
  uid   Simon Josefsson <si...@josefsson.org>

If that command fails because you don't have the required public key,
or that public key has expired, try the following commands to retrieve
or refresh it, and then rerun the 'gpg --verify' command.

  gpg --locate-external-key si...@josefsson.org

  gpg --recv-keys 51722B08FE4745A2

  wget -q -O- 
'https://savannah.gnu.org/project/release-gpgkeys.php?group=libidn&download=1' 
| gpg --import -

As a last resort to find the key, you can try the official GNU
keyring:

  wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
  gpg --keyring gnu-keyring.gpg --verify libidn-1.43.tar.gz.sig

Use the .proof files to verify the Sigsum proof.  These files are like
signatures but with extra transparency: you can cryptographically verify
that every signature is logged in a public append-only log, so you can
say with confidence what signatures exists.  This makes hidden releases
no longer deniable for the same public key.

Releases are Sigsum-signed with the following public key:

  cat <<EOF > jas-sigsum-key.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILzCFcHHrKzVSPDDarZPYqn89H5TPaxwcORgRg+4DagE
EOF

Run a command like this to verify downloaded artifacts:

  wget -q -Otrust.txt https://gnu.org/s/libidn/sigsum-policy-20250309.txt
  sigsum-verify -k jas-sigsum-key.pub -p trust.txt \
        libidn-1.43.tar.gz.proof < libidn-1.43.tar.gz

You may learn more about Sigsum concepts and find instructions how to
download the tools here: https://www.sigsum.org/getting-started/

This release is based on the libidn git repository, available as

  git clone https://git.savannah.gnu.org/git/libidn.git

with commit e0e97997e1424cf2070c1cee01c66bee65d17b60 tagged as v1.43.

For a summary of changes and contributors, see:

  https://git.sv.gnu.org/gitweb/?p=libidn.git;a=shortlog;h=v1.43

or run this command from a git-cloned libidn directory:

  git shortlog v1.42..v1.43

This release was bootstrapped with the following tools:
  Git 2.48.1
  Gnulib 2025-02-01 c89cd2fbd3b9f3d7c5a146247256599714c91ec7
  Autoconf 2.71
  Automake 1.16.5
  Libtoolize 2.4.7
  Make 4.3
  Makeinfo 7.1.1
  Help2man 1.49.2
  Gperf 3.1
  Gengetopt 2.23
  Gtkdocize 1.34.0
  Tar 1.34
  Gzip 1.13
  Guix 680ee6aa58769deeb06efd0b1e5738f528e924af

NEWS

* Noteworthy changes in release 1.43 (2025-03-21) [stable]

** The release tarball is now reproducible.
Builds on the following pairs of systems are tested continuously in
GitLab CI/CD to assert that the tarball is identical: Trisquel 11
against Ubuntu 22.04, PureOS 10 against Debian 11, Devuan 5 against
Debian 12, AlmaLinux 8 against RockyLinux 8, and AlmaLinux 9 against
RockyLinux 9.  There are still minor variations between non-similar
platforms, depending on the different versions of the bootstrapping
tools used.  For example, a tarball generated on a Trisquel 11
(derived from Ubuntu 22.04) system should be identical to a tarball
from a Ubuntu 22.04 system, but will not be identical to a tarball
generated on a PureOS 10 system which uses different bootstrapping
tool versions.  The release archive itself was prepared using Guix.

** We publish a minimal source-only tarball generated by 'git archive'.
This tarball only contains the files stored in version controlled
sources, and no auxiliary files.  The source-only tarball may be
reproduced with Git 2.48.1 from Guix.  If something results in the
'git archive' format changing again, the tarball can only be
reproduced using an earlier system.  The git version in AlmaLinux 8,
AlmaLinux 9, RockyLinux 8, RockyLinux 9, Devuan 5, Debian 12 and
Ubuntu 24.04 all produce the same identical 'git archive' tarball.
The git version used on Debian 11, PureOS 10, Trisquel 11 and Ubuntu
22.04 produce another identical tarball.  These two 'git archive'
outputs are not the same, due to how Git works.

** A use of uninitialized value bug was fixed in idna_to_unicode_4z4z.
If the call to idna_to_unicode_44i failed due to an out of memory
condition (malloc() returning NULL) then the code would copy the
content of allocated but uninitialized memory into the output buffer.
The bug was found using GCC's static analyzer.

** The C# Libidn.dll can now be built with .NET as well as Mono/SSCLI.

** Fix self-check tst-version due to broken strverscmp on Windows/musl.

** The release tarball uses tar --format=ustar.

** The idn tool now binds the "gnulib" domain for translations.

** Unicode tables are now rebuilt from source again.
The lib/gen-unicode-tables.pl script stopped working with Perl 5.10
and in 2008 we added the then-generated source code files to git.  Now
we fixed the script to work with modern perl, so that gunibreak.h
gunicomp.h gunidecomp.h can now be generated from source again.

** Update gnulib files and build fixes.

Attachment: signature.asc
Description: PGP signature

Reply via email to