Tup: Difference between revisions
imported>Sheenobu m add category tag |
imported>Sheenobu Add new issue. fix links. |
||
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] | |||
=== 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 === |
Revision as of 01:29, 25 January 2021
From the tup manual: "Tup is a file-based build system".
Known Issues
tup rebuilds too often
When using updater.full_dep
, 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 nix-shell --pure
so that /run/current-system is not in PATH
Github issue: tup/#397
mount does not unmount
Tup can either not find fusermount OR the fusermount that tup finds is not setuid when using --pure.
Github issue: 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
When using nix-shell, pkg-config, and tup; pkg-config calls via tup do not find any packages.
You must add export lines to your tupfile that correspond to the variables set by NixOS pkg-config:
export PKG_CONFIG_PATH export PKG_CONFIG_PATH_FOR_TARGET export PKG_CONFIG_FOR_TARGET
You also have to export NIX_PKG_CONFIG* variables, which can change based on platform:
export NIX_PKG_CONFIG_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu
You can verify this by adding : |> pkg-config --list-all > %o |> pkg-list.txt
into your Tupfile and seeing which libraries are available via pkg-config.