Open3D icon indicating copy to clipboard operation
Open3D copied to clipboard

libopen3d-dev not available on Ubuntu 24.04 (Noble)

Open SteveMacenski opened this issue 1 year ago • 21 comments

Checklist

Steps to reproduce the issue

apt install libopen3d-dev

Error message

N/A

Open3D, Python and System information

- Operating system: Ubuntu 24.04

Additional information

I'm a maintainer on https://github.com/ros-perception/perception_open3d the Open3D conversion tools for the ROS ecosystem and we've recently migrated to 24.04 but the Open3D binaries are missing so it cannot be compiled, released, or apt installable for ROS users.

Do you intend to release Open3D in binaries to 24.04 (Noble) or should I plan to remove binaries from ROS for the conversion kit?

SteveMacenski avatar Mar 28 '24 17:03 SteveMacenski

@roehling Can you please take a look at this one?

ssheorey avatar Apr 01 '24 05:04 ssheorey

Unfortunately, I was not involved in the decision to drop Open3D from Ubuntu Noble. I suspect they have problems with PyTorch, and I recently added PyTorch support to the Debian release, but I cannot tell for sure. I'm trying to find out and see if they are willing to re-add the package, but it is already quite late in their release cycle, so no promises.

roehling avatar Apr 05 '24 11:04 roehling

Hi @roehling, if it's not possible to get it into 24.04, would you think about creating a PPA hosting the package for Noble? Thanks for your answer!

tirolerstefan avatar Apr 22 '24 11:04 tirolerstefan

I already have a PPA for Ubuntu 20.04, so yes, I am planning to host Open3D binaries for 24.04 there, as a fallback solution.

roehling avatar Apr 22 '24 11:04 roehling

That would cause us problems in ROS-land unfortunately for releasing any binaries that rely on Open3D since the ROS build farm cannot have PPAs added :frown: We'd have to remove those from ROS and any users would need to compile from source (and anything that relies on it from source, and so on) or setup a vendorization package to build from source in the ROS build farm and release via a open3d_vendor package that is build in the ROS build farm on the ROS index

SteveMacenski avatar Apr 22 '24 15:04 SteveMacenski

Hi Timo @roehling, we are also thinking about disabling open3d in our code for now - or do you already have an idea when the packages in your ppa might be available? Thanks for all!

tirolerstefan avatar May 03 '24 07:05 tirolerstefan

We were forced to remove the CI jobs from the ROS community since the binaries aren't available. Its easy enough to kick them back on once they're available as long as its not behind a non-default PPA (else will involve a bit of work requiring us to compile from source on ROS infrastructure)

SteveMacenski avatar May 03 '24 16:05 SteveMacenski

Hi @SteveMacenski @tirolerstefan are any other sources of binary repos acceptable? We can host them on github releases, for example, for direct download.

Also, if you have specific build needs / configs for ROS, we can include them in the Open3D repo to make building binaries easy for ROS users. Please submit a PR.

ssheorey avatar May 03 '24 17:05 ssheorey

Also, if you have specific build needs / configs for ROS, we can include them in the Open3D repo to make building binaries easy for ROS users. Please submit a PR.

I'll preface this that I'm an intermediate, not expert, at the ROS release infrastructure. I know alot, but I also ack that I don't know everything. So there may be other options available, but this is the best of my understanding.

ROS package management allows us to specify keys for completely external projects that can be installed using rosdep. The index is stored here so that we can call out external non-ROS dependencies and have the package.xml know for a given key what binaries it needs to grab for the Tier-1 supported operating systems. This only works with default repositories though, I don't believe there is a way to allow for PPAs in this unless something has changed in the last 2-3 years from the last time I ran into this.

So if binaries are not available by default, then our next option is to vendorize the packages. That essentially means running a ROS build farm job to compile the code and release it within the ROS ecosystem as if it were a ROS package itself. There are tools like ament_vendor to make this easy (example). That way, now we have the open3d_vendor key that we can use with our package.xml files to install that version of it instead. But now ROS build farm would be owning the overhead of compiling Open3D and its another thing that would need to be periodically released.

With all that mentioned: for any single user for any single application, they can ExternalProject Open3D or pull in some binaries from your release page without a problem. The issue here is that the ROS Build Farm does everything in a high degree of isolation so it only has the dependencies installed that the package.xml calls out. So, anyone that would like to release a ROS project for binary builds that depends on Open3D will be unable to - such as perception_open3d and others. For example, I couldn't use Open3D in Nav2 because I have to be able to release binaries to users. If they/we/I external project Open3D, then its better for Open3D to provide its own ROS vendor so that the build farm isn't rebuilding open3D for dozens of packages independently (just once)

That is, I suppose, unless those packges grabbed your binaries from the release page, but that seems like a big security risk for ROS package distribution. This is where I'm a little fuzzy about the policies here. I don't think they'd allow that to get into the build farm doing something like that, but I also don't know that they wouldn't either. Its not a question I've ever seriously posed, I usually went the vendor direction as preferable.

So... missing the 24.04 cut off or conflict actually does create a bit of an issue if its a goal for Open3D to be easily compatible with ROS :cry:

SteveMacenski avatar May 03 '24 17:05 SteveMacenski

For us, any PPA or direct download would be ok.

tirolerstefan avatar May 03 '24 18:05 tirolerstefan

@tirolerstefan please use the binaries from github release (check the assets section in the release page for direct links for your chosen binary).

https://github.com/isl-org/Open3D/releases/tag/v0.18.0

Note that these are "all included" binaries, so they do not depend on other OS / system packages (except very basic packages). This is unlike the Debian binaries that are built to maximize package reuse.

ssheorey avatar May 03 '24 18:05 ssheorey

Sorry, maybe I was not precise enough. We are mirroring debian packages into our own repository, so we would need debian packages, but for us it doesn't matter whether they come from Noble's or your PPA. Timo said it would be possible to host those noble compatible packages in his / your custom PPA as a fallback.

tirolerstefan avatar May 03 '24 19:05 tirolerstefan

I'm currently working on a PPA release. I have to fix Filament first (which was broken by a new glslang release), but I expect to be done by the end of May, hopefully earlier.

roehling avatar May 07 '24 11:05 roehling

Open3D 0.18 for Ubuntu Noble will be available from my PPA as soon as Launchpad has finished building the binary packages.

roehling avatar May 18 '24 17:05 roehling

Available now. Thanks @roehling !

ssheorey avatar May 18 '24 19:05 ssheorey

We already have integrated your newly provided open3d for Noble into our repository, built against it and tested, successfully. Thanks a lot!

tirolerstefan avatar May 21 '24 12:05 tirolerstefan

As another ROS developer, I'd still prefer official debian packaging, that way downstream dependents could release official packages of their own without going the lengths to vendor the entire Open3D library. We're not allowed to rely on PPAs.

ruffsl avatar Jul 12 '24 20:07 ruffsl

Unfortunately, I was not involved in the decision to drop Open3D from Ubuntu Noble. I suspect they have problems with PyTorch, and I recently added PyTorch support to the Debian release, but I cannot tell for sure. I'm trying to find out and see if they are willing to re-add the package, but it is already quite late in their release cycle, so no promises.

@roehling Do you know where that decision would have been logged? I'm seeing patches of open3d v0.18 here for trixie, sid:

  • https://sources.debian.org/patches/open3d/
  • https://packages.debian.org/trixie/libopen3d-dev

With trixie, sid being what I think Ubuntu Noble 24.04 is based on:

  • https://git.launchpad.net/ubuntu/+source/base-files/tree/etc/debian_version?h=applied/ubuntu/noble

ruffsl avatar Sep 19 '24 21:09 ruffsl

Open3D 0.18 for Ubuntu Noble will be available from my PPA as soon as Launchpad has finished building the binary packages.

FYI, this seems to conflict with PCL, seems they are using two different versions of VTK. So you can't have both installed at the same time on Noble.

ralphieraccoon avatar Sep 22 '24 21:09 ralphieraccoon