Skip to content

[WIP] Add pcl package and friends, first attempt.#4188

Closed
svenevs wants to merge 5 commits intospack:developfrom
svenevs:pcl_and_friends
Closed

[WIP] Add pcl package and friends, first attempt.#4188
svenevs wants to merge 5 commits intospack:developfrom
svenevs:pcl_and_friends

Conversation

@svenevs
Copy link
Copy Markdown
Member

@svenevs svenevs commented May 10, 2017

flann dependency

libnl dependency

libpcap dependency

  • libpcap likes libnl, keep that as default to true.
  • will update the url away from github release in next commit

libusb dependency

  • Note 1 at bottom: should raise error if on Windows? I have no idea if it works or not

    # NOTE: this package probably works on all Linux, likely OSX
    #       *as-is*.  There are far too many options for me to understand.
    #
    #       The package likely does not work on Windows.  If you need that
    #       refer to WIN_INSTALL on their GitHub page.
    
  • Note 2 at bottom: libudev is too hard to install -- users should be using system package manager to make sure they get it right / spack cannot install necessary files (requires elevated permission)

    # NOTE: this package *RELIES* on libudev, which requires the systemd PR
    #       to be fixed.  So as it stands, users must ensure that they have
    #       libudev headers and library.  On Fedora, this was available via
    #       dnf install systemd systemd-devel systemd-libs
    #       the apt repos should be similarly named (apt-cache search systemd)
    
  • How do I do a sourceforge url for the official "latest stable tarball"?

  • will delete FIXME in next commit with url from 3

pcl package: the real goal here

  • What should default boost be. Depends on if we assume OpenNI2 installed.

    # TODO: how to give boost version AND specific boost library
    # requirements? What should they be / variants can't embed optional
    # boost deps right?
    #
    # REQUIRED boost:
    #     If OpenNI2: +system+filesystem+thread+date_time+iostreams+chrono
    #     Else:       +system+filesystem+thread+date_time+iostreams
    # OPTIONAL boost:
    #     +serialization+mpi
    
  • Python treatment, should it depend on opencv+python or should we use the py-pcl?

    # TODO:
    # What to do about python?  It depends on opencv+python, but they are
    # some kind of extension, and install underneath opencv?
    # https://github.com/PointCloudLibrary/pcl/blob/6f846d242b07b7b2d5a562bbc60b3b488bbf6a47/cmake/pcl_find_python.cmake
    # There is also a python-pcl package they maintain?
    # http://pointclouds.org/news/tags/python
    
  • Are the defaults acceptable or should they be made explicit (even if same as current defaults)?

    # TODO: should something be done with the default options?
    # https://github.com/PointCloudLibrary/pcl/blob/master/cmake/pcl_options.cmake
    
  • Assume depth camera support? Only builds if available. But won't be used if we don't default libusb

    # TODO: spack will never be suited to nor should attempt to be suited
    # to install RGBD camera drivers.  How should spack inform users to
    # be sure that they are going to get what they want?
    #
    # The drivers require elevated permissions, and most often custom
    # modules and startup scripts.  The user is advised to try and
    # install from the official SDK or their system package manager
    # where possible.
    
    • AKA if we assume yes, it doesn't hurt, but we should maybe make libusb a full-blown requirement?

      # NOTE: libusb support REQUIRED for ANY to be used.
      #
      # Currently, the available driver support that can be built:
      # https://github.com/PointCloudLibrary/pcl/blob/b9022ebd8ad5f5300662069b5f79995d0c0e18be/CMakeLists.txt#L296-L303
      #
      # The way it works is that everything is default to TRUE, the library
      # is attempted to be found, and if not ignored.
      #
      # It takes place here:
      # https://github.com/PointCloudLibrary/pcl/blob/b89b32b5e812353e93a5c35203c70b878c8ae2b7/cmake/pcl_targets.cmake#L842-L864
      
  • How do I get the right version number from qt correctly?

    # TODO: how do i check this?
    if self.spec.satisfies("^[email protected]"):
        qt_ver_str = "4"
    else:
        qt_ver_str = "5"
    args.append("-DPCL_QT_VERSION:STRING={0}".format(qt_ver_str))
    
  • Choose appropriate defaults for GUI libraries (off right?): opengl, qt, and vtk for pcl.

  • Choose appropriate defaults for camera support.

    • See libusb note above. +usb shouldn't be hard to compile portably (clusters etc)
    • If we don't force libusb in and people are trying to use it for camera support (very likely), they will not actually get it unless usb on.
    • Basically: create some form of bolded warning, or force it as a hard dependency.
  • GitHub releases are the official releases, not mirrors.

@adamjstewart
Copy link
Copy Markdown
Member

#4168 also appears to add a libnl package.

@svenevs svenevs changed the title Add pcl package and friends, first attempt. [WIP] Add pcl package and friends, first attempt. May 11, 2017
@svenevs
Copy link
Copy Markdown
Member Author

svenevs commented Aug 29, 2018

abandoned, feel free to ask questions here if somebody is picking up PCL again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants