#1147334 ITP: libultrahdr -- libultrahdr HDR gain map library

#1147334#5
Date:
2026-09-11 06:41:08 UTC
From:
To:
* Package name    : libultrahdr
  Version         : 2.0.2
  Upstream Contact: Vincent Rabaud <vrabaud@google.com>
* URL             : https://github.com/google/libultrahdr
* License         : Apache-2.0 or MIT
  Programming Lang: C++
  Description     : libultrahdr HDR gain map library

libultrahdr is an image compression library that uses gain map technology
to store and distribute HDR images.

This package would be needed to process or display photos from most
modern phones in the last years without losing significant luminosity
data. Recent desktop environments support displaying HDR content, but
applications are somewhat lacking in supporting other than videos.

I am using this for test purposes on my own computer to display personal
photos from the last 3-4 years.

As an example Google enabled Ultra HDR by default on all Pixel phones,
Pixel 5 and newer, to record gain map data in late 2023, so all photos taken
after that rollout should include the data, unless modified with software
that drops the data. Samsung devices call it Super HDR, Apple calls it
Adaptive HDR, and there is ISO 21496-1 standardizing it.

I'll be uploading it on my own, but all my packages are LowNMU and it can
be freely moved to be part of some team.

#1147334#10
Date:
2026-10-11 05:31:32 UTC
From:
To:
This is an automated message from the Debian DFSG, Licensing & New
Packages Team.

The Debian NEW review of libultrahdr 2.0.2-1 has been completed.

Decision: ACCEPTED
Reviewer: Andrew McMillan

Review comment:

Hi,

A couple of issues you should fix in your next upload...

1. [important] packaging libheif-dev not in Build-Depends: HEIF/AVIF support silently disabled

Files: debian/control (Build-Depends); CMakeLists.txt:648-744; debian/ultrahdr_app.1 (-z option)
Evidence: option_if_not_defined(UHDR_ENABLE_HEIF "Build with HEIF/AVIF support via libheif" TRUE) then find_package(libheif QUIET) … message(WARNING "libheif not found. Building without HEIF/AVIF support.") set(UHDR_ENABLE_HEIF FALSE); heifultrahdr.cpp/avifultrahdr.cpp are whole-file #ifdef UHDR_ENABLE_HEIF; docs/api_changes_v1.5_to_v2.0.md: “When disabled: libultrahdr builds as a standalone, zero-dependency JPEG-only library”. Build-Depends has no libheif-dev, so a clean sbuild gets the JPEG-only fallback.
Problem: The shipped libuhdr.so and ultrahdr_app lose HEIF/HEIC/AVIF encode/decode although the library’s man page documents .heic/.heif/.avif output selection and upstream enables this by default; callers calling HEIF/AVIF API modes will get errors at runtime. The degradation is silent and undocumented.
Fix: Add libheif-dev to Build-Depends (libheif 1.23.4 in unstable provides the ISO 21496-1 gain-map API that Findlibheif.cmake checks; the runtime shlibs:Depends on libheif1 follows automatically), and verify the build; if a deliberate JPEG-only build is intended instead, document it in debian/control, the changelog and the man page.

2. [minor] licensing cmake/patches/libheif_pr1503.patch is libheif (LGPL-3.0-or-later) code but only covered by the Apache-2.0 or MIT catch-all

Files: debian/copyright Files: * stanza; cmake/patches/libheif_pr1503.patch
Evidence: The patch is a verbatim diff of the libheif project (paths libheif/CMakeLists.txt, libheif/api/libheif/heif.cc, heifio) adding the gain-map API; libheif is LGPL-3.0-or-later. It has no license header of its own and falls under Files: * with Copyright 2022-2026 The Android Open Source Project, License: Apache-2.0 or MIT, which misstates its provenance and licence.
Problem: debian/copyright should reflect that a file is third-party libheif content under its own licence rather than the project’s dual licence; the file is inert in the Debian build (UHDR_BUILD_DEPS is off) so this is documentation-only, not a DFSG issue.
Fix: Add a Files: cmake/patches/libheif_pr1503.patch stanza attributing it to the libheif project / its author under LGPL-3.0-or-later (with the licence text), or note the provenance in the existing catch-all.


Thanks!

Full review details: https://dfsg-new-queue.debian.org/reviews/libultrahdr

#1147334#15
Date:
2026-10-11 06:00:21 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
libultrahdr, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1147334@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Timo Jyrinki <timo@debian.org> (supplier of updated libultrahdr package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Thu, 17 Sep 2026 16:58:20 +0300
Source: libultrahdr
Binary: libuhdr-bin libuhdr-bin-dbgsym libuhdr-dev libuhdr2 libuhdr2-dbgsym
Architecture: source amd64
Version: 2.0.2-1
Distribution: unstable
Urgency: medium
Maintainer: Timo Jyrinki <timo@debian.org>
Changed-By: Timo Jyrinki <timo@debian.org>
Description:
 libuhdr-bin - libultrahdr HDR gain map library - binary utilities
 libuhdr-dev - libultrahdr HDR gain map library - development files
 libuhdr2   - libultrahdr HDR gain map library
Closes: 1147334
Changes:
 libultrahdr (2.0.2-1) unstable; urgency=medium
 .
   * Initial release. (Closes: #1147334)
Checksums-Sha1:
 82b42c76539de21cb5f112750db997d917c19bf4 2035 libultrahdr_2.0.2-1.dsc
 92db3502d5942fe265623c86e7db5e2ff8bc83e6 1518872 libultrahdr_2.0.2.orig.tar.gz
 787debca41fd18337c2819bf6f7f1b615870ac4f 5520 libultrahdr_2.0.2-1.debian.tar.xz
 9d3c00d4d03991ddb61b7c38a704c1aeafd0e17f 2500460 libuhdr-bin-dbgsym_2.0.2-1_amd64.deb
 4c4891eded1f72ac06fbc619e7ec1d51c71d2781 190708 libuhdr-bin_2.0.2-1_amd64.deb
 d654d8a92c46730128309292be61357242e18c8e 11820 libuhdr-dev_2.0.2-1_amd64.deb
 7688fe2b2172aa377fa5fbb200bfb4ed81fb9582 2864244 libuhdr2-dbgsym_2.0.2-1_amd64.deb
 8e9a9ca0fd8088e8a536a8f6389cb45610a0f62f 192704 libuhdr2_2.0.2-1_amd64.deb
 2e99c7f988e8710300ff912ef407111edd7dee97 8527 libultrahdr_2.0.2-1_amd64.buildinfo
Checksums-Sha256:
 2e84906f06d86e332f686e432ce4ea2a1452975eb06123d5aca69fc0d8b31611 2035 libultrahdr_2.0.2-1.dsc
 aa8d193bb887c348c419780511dd03b374f4e07af8812b6d3f80c8537cf1ef2c 1518872 libultrahdr_2.0.2.orig.tar.gz
 d32bc200c8e1f611d60d352c3d5c0bc4a40cd138f459c01a4eabdc4e7d3d98cd 5520 libultrahdr_2.0.2-1.debian.tar.xz
 f9af3075f8e2611ca3e56be8c23c2e86de7864b1af8bee2c1f337056d8b64b92 2500460 libuhdr-bin-dbgsym_2.0.2-1_amd64.deb
 ba3323efe31d9dde09d40e9a2873ca1584b8ffac02839536662f3b23453d40a4 190708 libuhdr-bin_2.0.2-1_amd64.deb
 e82c4cc64c6939993760d0def8d2b1804b1f071217276b9568bc3d84e63fac8d 11820 libuhdr-dev_2.0.2-1_amd64.deb
 d0f92148ff17509b7eb4ee908cf9e9b9c23fd0fcba5c5812020306003fcb0f80 2864244 libuhdr2-dbgsym_2.0.2-1_amd64.deb
 d7bc6f002b454a9753f95cf0d68c5070ef5f6f05de9bd8714d465c944aa4e823 192704 libuhdr2_2.0.2-1_amd64.deb
 76cd32b0548affde82a91174389eb32d636430f2f48c8212e55657d49e06cf77 8527 libultrahdr_2.0.2-1_amd64.buildinfo
Files:
 1276050e4518bf03684ffb0de625c020 2035 libs optional libultrahdr_2.0.2-1.dsc
 4c3aad16b273a5d127de330cb0697790 1518872 libs optional libultrahdr_2.0.2.orig.tar.gz
 be460cec69eba1e1ebd3fc73e30a9268 5520 libs optional libultrahdr_2.0.2-1.debian.tar.xz
 6e3f88ced553d914a10c40f3265f6ee6 2500460 debug optional libuhdr-bin-dbgsym_2.0.2-1_amd64.deb
 b1c5b365682c812866fab21a2f883ce1 190708 utils optional libuhdr-bin_2.0.2-1_amd64.deb
 4570f0cb6c65cb826cd0251ed633e9df 11820 libdevel optional libuhdr-dev_2.0.2-1_amd64.deb
 872f9f076c9985cf2e3b029acebd8a36 2864244 debug optional libuhdr2-dbgsym_2.0.2-1_amd64.deb
 2fcb807d373434abe0ea4183ffbf10f3 192704 libs optional libuhdr2_2.0.2-1_amd64.deb
 966828d333ad675a320fabb3151b84b7 8527 libs optional libultrahdr_2.0.2-1_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJEBAEBCgAuFiEEa4VNRuhDPNfNwDYw4PdZ95C90gcFAmqsAKoQHHRpbW9AZGVi
aWFuLm9yZwAKCRDg91n3kL3SByY5D/9F6Sq08DISz/X0d88sdpt/AAJRN2/R3ekh
n7Hg/A0UYK7Sj1zEsjzFaw7CJTyWGiZgkDrF/p+ouq94ZTjJ+p0dJi5W7HT8lotX
cxbRnurhSZDzyW+jE9yJba21d/COlJX2mM9JSE6Qd8tuGAmaf8x9GN6nuhWHsgDh
GbDOcm9N3v7p+LfzYtPF1Yjq4aDTOBOhDLqpEU3j2i34zv+eUvRbsZsVidvrAxvV
RBroA90dnUyLRZ9PUnfQbySleSvVpGMZ4idxCy/ATc68jmrrV1LmxuBlIEPlgeRD
G3gi+1wsiSgtJnLj9nIENLuIJg6ki5j4h7gNoQ2wn0RAh1/4gRw4azeChugPa/4M
PUL0IDz2Hlzyb5H9kZuqv+F819uknMz9VdDPJEgX+M/dFSAHReCzMVzR1xEGQQVq
4H8D0ANSyA2ZnKkwv2ixTjYVOQ/y1897BPfuSQ5A4u6CfdgArYQ+r7JH91LyVgHS
9XZAzKxlJyNpkfggX7kTL0une6jpkmQ+p4S/LoMw8YPnOlw6kSjMqZZOk8kbKscq
gkcHTFTr9yaqgfJGPtmS5fiqAXLrRf6muhZ5LnJHnUrZlJtoL9iaP/QWwlhL+r88
RzU8x0rBc6b1S4ZTcipkVoDhlnjXA0r73SO102y/Q6eDooC41nEy1Mk2HMjwb8rd
guG1F8gN7w==
=cfdG
-----END PGP SIGNATURE-----