Package: libh3-dev
Version: 4.4.1-1
Severity: important
X-Debbugs-Cc: [email protected]

Dear Maintainer,

* What led up to the situation?

  libh3-dev contains h3api.h, but it was installed as
  /usr/include/h3api.h.

  The header files such as h3api.h should not be installed under
  /usr/include, but /usr/include/h3/h3api.h.

  Why it should be? it seems that there is 2 use-cases.

  * Install header files under /usr/include/h3. use it from application

    Official example do that (include <h3/h3api.h>):

    
https://github.com/uber/h3/blob/1d5346bb30082e10b8da60a6d288bc1998295d61/examples/edge.c#L21

    for Debian package, this is right solution.

  * Use vendored h3 header file from application.

    h3api.h is not placed under h3 in source
    tree (src/h3lib/include/h3api.h), so if you use vendored version of
    h3, include <h3api.h> is correct.

    For example, h3-pg is designed to use with vendored h3.

    https://github.com/postgis/h3-pg/blob/main/cmake/h3/CMakeLists.txt

  Thus, using from third-party application (not limited hg-pg),
  libh3-dev should install header files under /usr/include/h3 as
  system-wide.

* What exactly did you do (or not do) that was effective (or
  ineffective)?

  Do not install usr/include explicitly.

  diff --git a/debian/libh3-dev.install b/debian/libh3-dev.install
  index c6f2c3e..48b738a 100644
  --- a/debian/libh3-dev.install
  +++ b/debian/libh3-dev.install
  @@ -1,3 +1,3 @@
   usr/lib/*/*.so
   usr/lib/*/cmake
  -usr/include/h3/* usr/include
  +usr/include/h3/*

* What was the outcome of this action?

  h3api.h will be installed as /usr/include/h3/h3api.h.
  
  NOTE: It might be modified for supporting h3-pg (it include <h3api.h>
  instead of <h3/h3api.h> but h3-pg assumes vendored h3.
  vendored h3 directory structure is bit different, so include <h3api.h>
  is correct in the context of h3-pg.
  This must be changed to support system-wide installed libh3-dev, but
  it is out-of-scope in this bug.

* What outcome did you expect instead?

N/A


-- System Information:
Debian Release: forky/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.19.6+deb14-amd64 (SMP w/24 CPU threads; PREEMPT)
Locale: LANG=ja_JP.utf8, LC_CTYPE=ja_JP.utf8 (charmap=UTF-8), LANGUAGE
not set Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Reply via email to