[talk] Idea: NixBSD
Malcolm Matalka
mmatalka at gmail.com
Fri Aug 14 11:24:05 EDT 2015
Hello everyone,
I'd like to throw out an idea and get peoples reactions. This is not a
concrete plan or anything I'm actively working on, more of a long term
vision I'd love to see happen.
Idea:
A distribution of BSD that leverages the Nix package manager down to the
OS configuration. Roughly a BSD version of NixOS.
Motivation:
The effort put into the ports is fantastic but the ports system is rigid
in that supporting multiple versions of a single package requires a fair
amount of effort, installing/removing ports is limited to the
administrator of the machine, each port has to produce a unique set of
output names, source based vs binary based might have a similar source
but are distinct package systems.
Solution:
The Nix package manager is a purely functional package manager that
supports source-based, and binary-based packages. It allows multiple
versions of a port to be installed simultaneously and by non-admin
users. It supports a binary cache on source-based ports. I believe
that Nix packages are easier to create and maintain than ports, however
that is clearly subjective.
The goal would be to have a BSD distribution based on FreeBSD or OpenBSD
that migrates the ports collection to nix and then eventually replaces
the OS configuration with Nix as well. This puts all of the machine
configuration in a single place, simplifying the configuration of the
operating system.
This would be a lot of work, but I believe worth it in the long run. In
the future I hope to have some time to add FreeBSD support back to Nix
(it was not maintained and currently does not compile AFAIK) then
getting ports to work under it.
I'm curious, what technical problems do people see with this idea? What
social problems? IMO, Nix, while having issues, is vastly superior to
any package manager I have used, but I'm not sure if it fixes a problem
that anyone else in the BSD community believes exists.
Thanks,
/Malcolm
More information about the talk
mailing list