Menu

#196 Use reentrant libqhull_r instead of deprecated libqhull

None
closed-fixed
None
5
2021-07-06
2021-04-05
No

The non-reentrant version has been deprecated since qhull 2020.1, all users should switch to the reentrant libqhull. The reentrant version is available since qhull 2015.1.

The attached patch lets the code use the reentrant version.

(Instead of updating the homegrown FindQHULL.cmake, just using the cmake config provided by qhull upstream may be the better option).

1 Attachments

Discussion

  • Alan W. Irwin

    Alan W. Irwin - 2021-07-06
    • status: open --> closed-fixed
    • assigned_to: Alan W. Irwin
    • Group: -->
     
  • Alan W. Irwin

    Alan W. Irwin - 2021-07-06

    Hi Stefan:
    In response to your suggestion of perhaps using a CMake find_package config mode file developed by upstream libqhull, I think that would be a good idea, but I could not find such upstream support for config mode. Am I missing something?

     
  • Stefan Brüns

    Stefan Brüns - 2021-07-06

    https://github.com/qhull/qhull/blob/master/CMakeLists.txt#L722

    So something like ¨find_package(Qhull)", "target_link_libraries(... Qhull:qhull_r ....)" should be sufficient.

     
    • Alan W. Irwin

      Alan W. Irwin - 2021-07-06

      On 2021-07-06 12:07-0000 "Stefan Brüns" wrote:

      https://github.com/qhull/qhull/blob/master/CMakeLists.txt#L722

      So something like ¨find_package(Qhull)", "target_link_libraries(... Qhull:qhull_r ....)" should be sufficient.

      Yeah, I am well aware of this nice target_link_libraries opportunity
      if qhull-generated CMake config files are widely available (e.g., are
      packaged for each software distribution that includes qhull). But
      they are not. For example, Debian Stable does not include them
      because they did not exist for that version, 2015.2-4, of qhull. But
      from
      https://packages.debian.org/bullseye/amd64/libqhull-dev/filelist
      Debian Bullseye = Testing does include them (for libqhull version
      2020.2-3). But the problem is those results are presumably version
      dependent so I cannot import a local copy of one of those generated
      versions into PLplot and have it serve for all versions of qhull.

      A rule of thumb I use for version dependent software issues like this
      is if Debian Stable provides a package for a particular version of
      software, then all modern software distributions (including Linux
      distributions, the Mac OS X distributions, and Cygwin and MSYS2)
      usually provide that same version or later. So PLplot supports the
      software versions that are in Debian Stable, but nothing older and
      that assures fairly good compatibility with all other modern software
      distributions.

      In sum, thanks very much for this config mode idea, but because of the
      above rule of thumb I will wait until the next release of Debian
      (i.e., when Debian Bullseye become Stable) to implement it (which
      should considerably simplify the qhull-related parts of our build
      system).

       
      • Alan W. Irwin

        Alan W. Irwin - 2021-07-06

        On 2021-07-06 17:21-0000 Alan W. Irwin wrote:

        In sum, thanks very much for this config mode idea, but because of the
        above rule of thumb I will wait until the next release of Debian
        (i.e., when Debian Bullseye become Stable) to implement it (which
        should considerably simplify the qhull-related parts of our build
        system).

        Hmm. After considering this version issue some more, the fact is the next release
        of PLplot will likely roughly coincide with the Bullseye release.

        So my new plan for this development topic (in anticipation that libqhull-2020 or newer will be
        widely available for most modern software distributions by the time
        the next version of PLplot is released) is to do the following:

        • Build and install a local version of qhull-2020 to use for testing.

        • Convert the PLplot build system to use full config mode when finding the qhull package
          and configuring the qhull-related parts of the build system using target_link_libraries.

        When that development topic is pushed (hopefully within a day or so),
        I will let you know here in case you want to test that improvement for
        your own PLplot needs.

         
        • Alan W. Irwin

          Alan W. Irwin - 2021-07-12

          On 2021-07-06 19:40-0000 Alan W. Irwin wrote:

          When that [config-mode] development topic is pushed [...]

          DONE. See https://sourceforge.net/p/plplot/plplot/ci/52479b8830ee02900b41fe3ec947aed6b1841a48/.

          Please test that improvement for your own PLplot needs and report those test results here.

           

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.