Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use system libraries instead of bundling them when possible #1490

Closed
luyatshimbalanga opened this issue Apr 11, 2021 · 4 comments
Closed

Use system libraries instead of bundling them when possible #1490

luyatshimbalanga opened this issue Apr 11, 2021 · 4 comments

Comments

@luyatshimbalanga
Copy link

Description of Issue

The folowing libraries are bundled in USD tarball:

Provides:       bundled(double-conversion) = 2.0.0
Provides:       bundled(ilmbase) = 2.5.3
Provides:       bundled(lz4) = 1.9.2
Provides:       bundled(pugixml) = 1.9
Provides:       bundled(rapidjson) = 1.0.2
Provides:       bundled(SPIRV-Reflect) = 1.0
Provides:       bundled(stb_image) = 2.19
Provides:       bundled(stb_image_resize) = 0.95
Provides:       bundled(stb_image_write) = 1.09
Provides:       bundled(VulkanMemoryAllocator) = 3.0.0~development

It will be great to simple use the system libraries instead to ease the maintenance

Steps to Reproduce

  1. Attempt to build with the system libraries

System Information (OS, Hardware)

Fedora 34 running on x86_64 hardware i.e HP Envy x360 Convertible Ryzen 2500U

Package Versions

21,02

Build Flags

@spiffmon
Copy link
Member

Hi @luyatshimbalanga ,
We appreciate the concern, but could you please explain how you believe it would make maintenance easier? We chose to embed those small packages directly in USD to greatly ease both our maintenance burden (so that we can chose when to update our use -- and in some cases we apply light tweaks on top), and the client build process. If you troll through old Isues and the usd-interest forum, you'll see that "USD finding the right version of package XXX to use" is one of the biggest problems people run into, so taking these packages off the table simplifies the build process considerably, without appreciably adding to its time or size.

Thanks!
--spiff

@luyatshimbalanga
Copy link
Author

@spiffmon
The goal is packaging USD on Fedora and in some extent CentOS Stream. I was suggested to contact you as team about using the system libraries when possible. You can view this ticket for further details.
Neverthess, the Fedora Packaging Guideline allows including the bundled libraries.

@jilliene
Copy link

Filed as internal issue #USD-6655

@sunyab
Copy link
Contributor

sunyab commented Aug 13, 2022

Closing out old issue. From the ticket it looks like USD was successfully packaged with Fedora, so it seems like this issue is no longer relevant.

Just to add on to Spiff's comments above about why we embed these libraries, I wanted to note that we take care to embed them in namespaces to avoid interfering with other code that may want to use other versions of these dependencies, including those supplied by the system. Also, most of these dependencies are implementation details that don't leak out into public headers.

Thanks!

@sunyab sunyab closed this as completed Aug 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants