Check out Guix via Nix package definitions. Nix looks far more hacky (embedded shell scripts are standard). Guix package defs are declarative and readable (even for those with little Lisp exposure).
Guix is not tied to any kernel version. Hurd and Linux-libre are officially supported. But it is trivial for users to incorporate non-free firmwares.