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

Basic Nix package and flake support #1663

Open
wants to merge 15 commits into
base: master
Choose a base branch
from

Conversation

kdmarrett
Copy link

@kdmarrett kdmarrett commented Aug 29, 2023

Pros:

  • Nix is the largest and most up to date package manager [repology.org]. Nix is multi-language and works on any Unix system, it wraps existing CMake infrastructure cleanly and is strong complement to C++'s weak packaging ecosystem
  • Nix is state of the art in deterministic builds (nix makes docker look like pip in terms of reproducibility). For example you can pin a nix package and all of its dependencies and compiler to specific git commits
  • Allows installing openvdb and a subset of its command line tools (vdb_view and vdb_print enabled so far) via a single command line invocation
  • Allows adding openvdb (and all of its dependencies) as a dependency to downstream C++ libraries via a single line
  • Its strict reproducibililty standards make it ideal for CI tasks (like github actions). I have done github action builds with openvdb and Nix and can help with that if desired.
  • Nix almost worked directly as a wrapper to the current CMake infrastructure it just required some small changes to your CMake that I would consider best practices (for example pkg-config)

Cons:

  • Strictly for Linux (or windows subsystem for linux) installation at the moment, private development is underway to support MacOS (mesa dependency is temporarily broken). Only works on Unix, it will probably never support raw windows installation
  • I set parallel builds to ON, for a 32 thread system this consumes 43 GB of memory, so some high thread low memory systems will fail to build

@linux-foundation-easycla
Copy link

linux-foundation-easycla bot commented Aug 29, 2023

CLA Signed

The committers listed above are authorized under a signed CLA.

@kdmarrett
Copy link
Author

Not ready for merge yet, need to remove unnecessary files that were previously used for backwards compatibility and fix the MacOS mesa nix package

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

Successfully merging this pull request may close these issues.

1 participant