# Merkle trees and build systems \[LWN.net\]

**URL:** https://discourse.nixos.org/t/merkle-trees-and-build-systems-lwn-net/7429
**Category:** Links
**Created:** [May 30, 2020, 9:22am UTC](https://discourse.nixos.org/t/merkle-trees-and-build-systems-lwn-net/7429 "2020-05-30T09:22:52Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![b42](https://discourse.nixos.org/user_avatar/discourse.nixos.org/b42/32/2298_2.png) [@b42](https://discourse.nixos.org/u/b42)
#### Post date: [May 30, 2020, 9:22am UTC](https://discourse.nixos.org/t/merkle-trees-and-build-systems-lwn-net/7429/1 "2020-05-30T09:22:52Z")

</div>

> **[Merkle trees and build systems \[LWN.net\]](https://lwn.net/Articles/821367/)**
>
> In traditional build tools like Make, targets and dependencies are always
> files. Imagine if you could specify an entire tree (directory) as a
> dependency: You could exhaustively specify a "build root" filesystem containing
> the toolchain used for...

---

<div class="post-metadata">

### Author: ![Ericson2314](https://discourse.nixos.org/user_avatar/discourse.nixos.org/ericson2314/32/316_2.png) [@Ericson2314](https://discourse.nixos.org/u/Ericson2314)
#### Post date: [May 30, 2020, 5:01pm UTC](https://discourse.nixos.org/t/merkle-trees-and-build-systems-lwn-net/7429/2 "2020-05-30T17:01:49Z")

</div>

Ah, if the rest of the world gets used to working with trees not individual files, we could have a really good `ninja2nix` without uncovering tons of impurities in practice.

---

<div class="post-metadata">

### Author: ![Ericson2314](https://discourse.nixos.org/user_avatar/discourse.nixos.org/ericson2314/32/316_2.png) [@Ericson2314](https://discourse.nixos.org/u/Ericson2314)
#### Post date: [May 30, 2020, 5:16pm UTC](https://discourse.nixos.org/t/merkle-trees-and-build-systems-lwn-net/7429/3 "2020-05-30T17:16:44Z")

</div>

And this has tons of left over with [Obsidian Systems is excited to bring IPFS support to Nix](https://discourse.nixos.org/t/obsidian-systems-is-excited-to-bring-ipfs-support-to-nix/7375) . I left a comment to that effect on the article (current awaiting moderation); would love to compare notes.

---

<div class="post-metadata">

### Author: ![pasqui23](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/p/ee7513/32.png) [@pasqui23](https://discourse.nixos.org/u/pasqui23)
#### Post date: [May 31, 2020, 11:42am UTC](https://discourse.nixos.org/t/merkle-trees-and-build-systems-lwn-net/7429/4 "2020-05-31T11:42:42Z")

</div>

> **[GitHub - awakesecurity/ninja2nix: A tool that generates a Nix derivation from...](https://github.com/awakesecurity/ninja2nix)**
>
> A tool that generates a Nix derivation from a Ninja build file. - GitHub - awakesecurity/ninja2nix: A tool that generates a Nix derivation from a Ninja build file.

But it does not have commits since 2017

---

<div class="post-metadata">

### Author: ![Ericson2314](https://discourse.nixos.org/user_avatar/discourse.nixos.org/ericson2314/32/316_2.png) [@Ericson2314](https://discourse.nixos.org/u/Ericson2314)
#### Post date: [May 31, 2020, 2:14pm UTC](https://discourse.nixos.org/t/merkle-trees-and-build-systems-lwn-net/7429/5 "2020-05-31T14:14:58Z")

</div>

That is largely because the it was being used for a specific project for Haskell that ran into other difficulties. The idea is still perfectly valid.

---

<div class="post-metadata">

### Author: ![alst2821](https://discourse.nixos.org/user_avatar/discourse.nixos.org/alst2821/32/2713_2.png) [@alst2821](https://discourse.nixos.org/u/alst2821)
#### Post date: [May 31, 2020, 10:23pm UTC](https://discourse.nixos.org/t/merkle-trees-and-build-systems-lwn-net/7429/6 "2020-05-31T22:23:37Z")

</div>

Thanks for the link. It bypasses the lwn subscription blocks - I would have had to wait a week to read it.
