Package: libh3-dev
Severity: important
X-Debbugs-Cc: ken...@xdump.org

Dear Maintainer,


* What led up to the situation?

  It seems that Using find_package(h3) can't be resolved correctly.

  This bug found in the following version.

  $ dpkg -l |grep libh3
  ii  libh3-1:amd64                 4.1.0-2                        amd64
      Hexagonal hierarchical geospatial indexing system - library ii
  libh3-bin                     4.1.0-2                        amd64
  Hexagonal hierarchical geospatial indexing system - CLI programs ii
  libh3-dev                     4.1.0-2                        amd64
  Hexagonal hierarchical geospatial indexing system - header files

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

  $ sudo apt install -y cmake libh3-dev libh3-bin cmake
  $ mkdir -p libh3-test
  $ cat <<EOF > libh3-test/CMakeLists.txt
  cmake_minimum_required(VERSION 3.16)
  project(test)
  find_package(h3 REQUIRED)
  EOF

  $ cmake -S libh3-test/ -B libh3-test.build
  -- The CXX compiler identification is GNU 13.2.0
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Check for working CXX compiler: /usr/bin/c++ - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  CMake Error at /usr/lib/x86_64-linux-gnu/cmake/h3/h3Targets.cmake:132
  (message): The imported target "h3::h3_bin" references the file

       "/usr/lib/bin/h3"

    but this file does not exist.  Possible reasons include:

    * The file was deleted, renamed, or moved to another location.

    * An install or uninstall procedure did not complete successfully.

    * The installation package was faulty and contained

       "/usr/lib/x86_64-linux-gnu/cmake/h3/h3Targets.cmake"

    but not all the files it references.

  Call Stack (most recent call first):
    /usr/lib/x86_64-linux-gnu/cmake/h3/h3Config.cmake:37 (include)
    CMakeLists.txt:3 (find_package)


  -- Configuring incomplete, errors occurred!


* What was the outcome of this action?

  cmake should not raise error in above use case.

  Actually, cmake try to resolve "/usr/lib/bin/h3", but
  it should be /usr/bin/h3 or /bin/h3.

  $ apt-file search bin/h3
  libh3-bin: /usr/bin/h3                    
  libh3-bin: /usr/bin/h3ToComponents
  libh3-bin: /usr/bin/h3ToHier
  simh: /usr/bin/h316


  $ cat -n /usr/lib/x86_64-linux-gnu/cmake/h3/h3Targets-none.cmake |
  head -n 15 1
  #----------------------------------------------------------------
  2     # Generated CMake target import file for configuration
  "None". 3
  #---------------------------------------------------------------- 4
  5     # Commands may need to know the format version. 6
  set(CMAKE_IMPORT_FILE_VERSION 1) 7    
     8  # Import target "h3::h3_bin" for configuration "None"
     9  set_property(TARGET h3::h3_bin APPEND PROPERTY
  IMPORTED_CONFIGURATIONS NONE) 10
  set_target_properties(h3::h3_bin PROPERTIES 11
  IMPORTED_LOCATION_NONE "${_IMPORT_PREFIX}/bin/h3" 12    )
    13  
    14  list(APPEND _cmake_import_check_targets h3::h3_bin )
    15  list(APPEND _cmake_import_check_files_for_h3::h3_bin
  "${_IMPORT_PREFIX}/bin/h3" )


  It seems that ${_IMPORT_PREFIX} is broken.
  (It should be empty or /usr)

* What outcome did you expect instead?

  Using find_package(h3) doesn't raise error.

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

Kernel: Linux 6.6.15-amd64 (SMP w/16 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE,
TAINT_UNSIGNED_MODULE 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