Currently, only google-fonts is a fixed-output derivation.
All the other fonts are not, they depends on stdenv and
stdenv is changed (e.g. on bash version bump). This results in significant slowness especially with big unicode fonts./home/user$ find /nix/store -mindepth 1 -maxdepth 1 -type d -regex '.+pragmata.+' -exec bash -c "echo \$(nix hash-path --type sha256 --base32 {}) {}" \; | sort
0sza3jc8c5krgydkk3s4rgbqb2xpwxz8nw82vxff4dbd0ib4niv9 /nix/store/2wbim0msiivp9lvcva7650shi07knhd9-pragmatapro-2015.07.08
0sza3jc8c5krgydkk3s4rgbqb2xpwxz8nw82vxff4dbd0ib4niv9 /nix/store/c9b3kmwfjd75kv0x3nx5fqkr8b3kchrr-pragmatapro-2015.07.08
0sza3jc8c5krgydkk3s4rgbqb2xpwxz8nw82vxff4dbd0ib4niv9 /nix/store/g724cd3g82qj8f1400bhxhwd6izxigqm-pragmatapro-2015.07.08
0sza3jc8c5krgydkk3s4rgbqb2xpwxz8nw82vxff4dbd0ib4niv9 /nix/store/gsdi6a1d7s8c90gvkqd1d28gbr31fj53-pragmatapro-2015.07.08
0sza3jc8c5krgydkk3s4rgbqb2xpwxz8nw82vxff4dbd0ib4niv9 /nix/store/hfgn36m2nib36as6fd8jqz9cpw6wwib9-pragmatapro-2015.07.08
0sza3jc8c5krgydkk3s4rgbqb2xpwxz8nw82vxff4dbd0ib4niv9 /nix/store/iwrkvipkv8dkvrl37a28njd9l7kixzsj-pragmatapro-2015.07.08
0sza3jc8c5krgydkk3s4rgbqb2xpwxz8nw82vxff4dbd0ib4niv9 /nix/store/p23ny6sl7jh4k2c4pdyiq9gqiabpab9k-pragmatapro-2015.07.08
0sza3jc8c5krgydkk3s4rgbqb2xpwxz8nw82vxff4dbd0ib4niv9 /nix/store/z76ramjc0qvz3i2iv5wz3yh6f579kzvy-pragmatapro-2015.07.08
1i2h52356h8fkq4kp8wmjshjyz2fhsf97n3s80cczj41d4akyhz8 /nix/store/5w5zih0bbfzx05agg43qlsq4i1c2bdkn-pragmatapro-2017.05.05
1i2h52356h8fkq4kp8wmjshjyz2fhsf97n3s80cczj41d4akyhz8 /nix/store/a8b7j593sh11rr8x6r9cd699cmcsnmfz-pragmatapro-2017.05.05
1i2h52356h8fkq4kp8wmjshjyz2fhsf97n3s80cczj41d4akyhz8 /nix/store/wlki4rifwrnyaamy0zp8g48034y3dvkw-pragmatapro-2017.05.05
1qsialfrjbry21cwqizfx2yvgm05p4lb6pa274yyliirjam3yiyr /nix/store/kdxx5720d2c4cx3ganc118vwhqf04016-pragmatapro-2016.09.19
With recent postFetch addition to fetch* builders, fixed-output derivations have even less code: https://github.com/NixOS/nixpkgs/pull/28108/files
@volth Please open one PR for all updates.
@volth Please stop. :crying_cat_face:
Please open one PR for all updates.
@fpletz
There is ~2000 lines diff and the are bugs (for example just discovered https://github.com/NixOS/nixpkgs/pull/28150)
I expect that some PR would be reverted.
What does #28150 have to do with the cleanups here? Please group the cleanups into one PR. Opening one PR per font is ridiculous and just clutters everyones' notifications.
What does #28150 have to do with the cleanups here?
Because some fonts are built using fontforge from the sources.
dejavu, monoid, ...
Please group the cleanups into one PR. Opening one PR per font is ridiculous and just clutters everyones' notifications.
You see it as similar cleanups because I submit starting from the most simple cases.
About big PR:
So I see one-PR-per-font as the only way which would work.
Okay, I understand the problem with fontforge.
I don't agree that such a big PR won't be reviewed because the changes are mostly trivial and one would have to review every package anyway. You could at least group the trivial changes into one PR and the controversial changes into separate PRs.
You can batch something like 10 fonts per pr. They are quite easy to review. We have a similar approach for cleanup python packages.
If meta.hydraPlatforms = []; this is also often an indication that fixed-output derivation can be used.
Example: https://github.com/NixOS/nixpkgs/pull/29024