Tup: Difference between revisions
imported>Sheenobu m add category tag |
imported>Ehmry Add flake note |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
== Known Issues == | == Known Issues == | ||
=== tup rebuilds too often === | |||
When using <code>updater.full_dep</code>, tup rebuilds the full project every time you reboot due to | |||
mtime changes in /run/current-system. | |||
The solution is to always use tup via <code>nix-shell --pure</code> so that /run/current-system is not in PATH | |||
Github issue: [https://github.com/gittup/tup/issues/397 tup/#397] | |||
Another method that minimizes changes to PATH is to create symlinks to tools with Tup: | |||
<syntaxhighlight lang="tup"> | |||
# Tuprules.tup - export a bang-rule that calls the Dhall interpreter | |||
DHALL_LINK = $(TUP_CWD)/dhall | |||
!dhall = | $(DHALL_LINK) |> $(DHALL_LINK)/bin/dhall |> | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="tup"> | |||
# Tupfile - build a symlink to the nixpkgs#dhall package | |||
include_rules | |||
: |> nix build nixpkgs#dhall --out-link %o |> $(DHALL_LINK) | |||
</syntaxhighlight> | |||
=== mount does not unmount === | === mount does not unmount === | ||
Tup can either not find fusermount OR the fusermount that | Tup can either not find fusermount OR the fusermount that tup finds is not setuid when using --pure. | ||
tup finds is not setuid. Github issue: | |||
Github issue: [https://github.com/NixOS/nixpkgs/issues/107516 nixpkgs/#107516] | |||
There is no real solution to this other than 1. patching tup to use setuid fusermount 2. (maybe) setting tup as setuid. | |||
=== pkg-config can not find my packages === | === pkg-config can not find my packages === | ||
Line 24: | Line 50: | ||
You can verify this by adding <code>: |> pkg-config --list-all > %o |> pkg-list.txt</code> into your Tupfile and seeing which libraries are available via pkg-config. | You can verify this by adding <code>: |> pkg-config --list-all > %o |> pkg-list.txt</code> into your Tupfile and seeing which libraries are available via pkg-config. | ||
=== Flakes === | |||
A Tup rule must not use a flake that resides in the same tup project as the rule because the nix command can aggressively access files in the vicinity of flake.nix. The flake should be external to the tup project or it can be stored within the same repository but only on a different branch, which would then then be registered in the local nix flake registry. | |||
[[Category:Applications]] | [[Category:Applications]] |