Nix, the purely functional package manager
Go to file
John Ericson 28d2af4ea6 Build nix-util with Meson
The idea is two-fold:

- Replace autotools with Meson

- Build each library in its own derivation

The interaction of these two features is that Meson's "subprojects"
feature (https://mesonbuild.com/Subprojects) allows us to have single
dev shell for building all libraries still, while also building things
separately. This allows us to break up the build without a huge
productivity lost.

I tested the Linux native build, and NetBSD and Windows cross builds.

Also do some clean ups of the Flake in the process of supporting new
jobs.

Special thanks to everyone that has worked on a Meson port so far,
@p01arst0rm and @Qyriad in particular.

Co-Authored-By: p01arst0rm <polar@ever3st.com>
Co-Authored-By: Artemis Tosini <lix@artem.ist>
Co-Authored-By: Artemis Tosini <me@artem.ist>
Co-Authored-By: Felix Uhl <felix.uhl@outlook.com>
Co-Authored-By: Jade Lovelace <lix@jade.fyi>
Co-Authored-By: Lunaphied <lunaphied@lunaphied.me>
Co-Authored-By: Maximilian Bosch <maximilian@mbosch.me>
Co-Authored-By: Pierre Bourdon <delroth@gmail.com>
Co-Authored-By: Qyriad <qyriad@qyriad.me>
Co-Authored-By: Rebecca Turner <rbt@sent.as>
Co-Authored-By: Winter <winter@winter.cafe>
Co-Authored-By: eldritch horrors <pennae@lix.systems>
Co-Authored-By: jade <lix@jade.fyi>
Co-Authored-By: julia <midnight@trainwit.ch>
Co-Authored-By: rebecca “wiggles” turner <rbt@sent.as>
Co-Authored-By: wiggles dog <rbt@sent.as>
Co-Authored-By: fricklerhandwerk <valentin@fricklerhandwerk.de>
Co-authored-By: Eli Schwartz <eschwartz93@gmail.com>
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2024-06-12 18:31:02 -04:00
.github document how to test github ci fully in your own fork 2024-06-06 12:55:45 +02:00
config Remove and gitignore the autoreconf generated files 2024-03-02 10:18:47 +01:00
contrib function-trace: always show the trace 2019-09-18 23:23:21 +02:00
dep-patches libexpr: Use GC_set_sp_corrector instead of patch 2024-06-03 16:37:39 +02:00
doc mention the actual meaning of FODs in the glossary (#10888) 2024-06-10 20:50:35 +02:00
m4 Build a minimized Nix with MinGW 2024-04-17 12:26:10 -04:00
maintainers Build nix-util with Meson 2024-06-12 18:31:02 -04:00
misc Use Nixpkgs changelog-d 2024-06-03 18:47:53 +02:00
mk Fix precompiled headers building with clang 2024-06-12 10:51:43 -04:00
perl Add setting to warn about copying/hashing large paths 2024-05-13 11:52:27 +02:00
scripts Merge pull request #10806 from jdek/riscv64_install 2024-06-03 15:42:13 +02:00
src Build nix-util with Meson 2024-06-12 18:31:02 -04:00
tests Fix FreeBSD build 2024-06-12 15:59:54 -04:00
.clang-format .clang-format: Remove duplicated key 2024-06-03 18:38:56 +02:00
.clang-tidy Add .clang-tidy 2024-02-01 01:01:39 +01:00
.dir-locals.el .dir-locals.el: Set c-block-comment-prefix 2020-07-10 11:21:06 +02:00
.editorconfig .editorconfig: Also affect Perl FFI xs file 2023-11-09 23:11:52 -05:00
.gitignore Build nix-util with Meson 2024-06-12 18:31:02 -04:00
.shellcheckrc Start getting all shell scripts passing shellcheck 2024-05-27 22:39:56 -04:00
.version Bump version 2024-06-12 14:57:40 +02:00
CITATION.cff chore: PhD thesis as reference in CITATION.cff 2024-05-18 20:05:22 +02:00
configure.ac Fix FreeBSD build 2024-06-12 15:59:54 -04:00
CONTRIBUTING.md add a recommendation for first-time contributors (#10605) 2024-04-25 13:34:15 +02:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
default.nix add flake-compat to flake.nix and use sha256 in default.nix 2023-03-06 21:11:24 +01:00
docker.nix fix "add an option to include flake-registry..." 2023-05-16 14:35:31 +02:00
flake.lock Update nixpkgs 2024-06-03 18:47:53 +02:00
flake.nix Build nix-util with Meson 2024-06-12 18:31:02 -04:00
local.mk local.mk: Solve warnings 2024-04-17 15:37:14 +02:00
Makefile add and fix -Wignored-qualifiers 2024-05-17 19:29:50 +02:00
Makefile.config.in C API: fix docs build after rebase 2024-03-28 10:51:59 +01:00
meson.build Build nix-util with Meson 2024-06-12 18:31:02 -04:00
package.nix Build nix-util with Meson 2024-06-12 18:31:02 -04:00
precompiled-headers.h Build a minimized Nix with MinGW 2024-04-17 12:26:10 -04:00
README.md add more context on the README (#9871) 2024-06-11 15:52:33 +00:00
shell.nix Remove url literals 2022-01-24 13:28:21 +01:00

Nix

Open Collective supporters Test

Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. Please refer to the Nix manual for more details.

Installation and first steps

Visit nix.dev for installation instructions and beginner tutorials.

Full reference documentation can be found in the Nix manual.

Building and developing

See our Hacking guide in our manual for instruction on how to set up a development environment and build Nix from source.

Contributing

Check the contributing guide if you want to get involved with developing Nix.

Additional resources

Nix was created by Eelco Dolstra and developed as the subject of his PhD thesis The Purely Functional Software Deployment Model, published 2006. Today, a world-wide developer community contributes to Nix and the ecosystem that has grown around it.

License

Nix is released under the LGPL v2.1.