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

Build daemon without rest of Nix #6182

Open
Ericson2314 opened this issue Mar 1, 2022 · 3 comments · May be fixed by #6225
Open

Build daemon without rest of Nix #6182

Ericson2314 opened this issue Mar 1, 2022 · 3 comments · May be fixed by #6225
Labels
cli The old and/or new command line interface

Comments

@Ericson2314
Copy link
Member

From NixOS/rfcs#68 (comment)

@Ericson2314 Would you be opposed to closing this RFC and creating a new feature request issue in the Nix repo? Having a minimal daemon is not really a potentially controversial or hard change that requires a shepherd team and all that :-) What do you think?

OK opening this. For me the requirements are this:

  • Don't build libexpr libfetchers
  • Expose modern nix-daemon and legacy nix-daemon

It seems like then we would have to make libcmd and libmain not depend on libexpr. Interesting!

@Ericson2314 Ericson2314 added improvement cli The old and/or new command line interface labels Mar 1, 2022
@edolstra
Copy link
Member

edolstra commented Mar 1, 2022

IMHO this is fairly low-priority and shouldn't be done if it causes a lot of code churn, since the value of a minimal daemon isn't entirely obvious. (All that libexpr code doesn't actually get used by the daemon, so it shouldn't cause any problems.) We're also moving in the direction of providing Nix as a single binary, and this goes against that.

@Ericson2314
Copy link
Member Author

Well, I did expect this wasn't as uncontroversial as you said it was :).

For me, Nix's frontend has dramatically increased in scope as of late, and this makes me eager to carve out a more stable scope level "thin waist". I know many people interested in using Nix without the nix expression language, and I also hope this would allow us to work with Guix to standardize a common drv layer. (They weren't so thrilled on the idea before, granted.) Such a common effort is, I think, a crucial step to getting Nix more commonplace in data centers of all stripes.

So to me, it will take churn, but it is entirely worth it. I guess I will return to the RFC at some point,

@Ericson2314
Copy link
Member Author

Last thing before I let this lie dormant:

We're also moving in the direction of providing Nix as a single binary, and this goes against that.

So really, I would love to have libfetchers-less/libexpr-less versions of nix hash nix copy nix build and other such "core" commands. Even more churn, but also preservation of the separate binaries idea.

We could have a nix-core binary (name TBD) with just those sorts of commands, without a libfetchers or libexpr, and also the regular nix binary with everything as today. We could just install/build nix-core for regular end users, but offer a separate nix-core package for those of us interested in these sort of applications (big industrial, alternative frontend, and standardization).

I think I could this without duplicated code, but yes with lot's of churn.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cli The old and/or new command line interface
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants