Что означает sha256 в nixpkgs.fetchgit? Откуда берется ценность?

Я хотел бы добавить пакет из github, как в примере ниже, но я не знаю, где я могу получить необходимый хеш sha256 (как показано ниже) для любого заданного источника github.

Может кто-нибудь объяснить, откуда берется sha256 и как я могу получить это значение sha256 для данной кодовой базы github?

       ghcjs-jquery = self.callPackage ({ mkDerivation, data-default, ghcjs-base, ghcjs-dom, text }:
          mkDerivation {
            pname = "ghcjs-jquery";
            version = "0.1.0.0";
            src = nixpkgs.fetchgit {
              url = git://github.com/ghcjs/ghcjs-jquery;
              rev = "c5eeeafcf81c0d3237b8b9fcb98c4b3633a1297f";
              sha256 = "3b2de54224963ee17857a9737b65d49edc423e06ad7e9c9b85d9f69ca923676a";
            };
            buildDepends = [
              data-default ghcjs-base ghcjs-dom text
            ];
            jailbreak = true;
            license = null;
          }
        ) {};

https://github.com/ryantrinkle/try-reflex/blob/ghcjs-improved-base/default.nix#L49

ps, вот что я получил в IRC в качестве ответа:

joco42> what does this sha256 attribute mean in this nix expression ? https://github.com/ryantrinkle/try-reflex/blob/ghcjs-improved-base/default.nix#L49
8:24 PM <joco42> where does it come from ?
8:24 PM <pikajude> that's the sha256 hash of that git checkout
8:25 PM  → obadz and ldng joined  ⇐ obadz- quit  
8:29 PM <joco42> pikajude: ok, cool how can i get that ?
8:30 PM <pikajude> nix-prefetch-git in the nix-prefetch-scripts package
8:30 PM <joco42> many thanks pikajude 

nix
person jhegedus    schedule 27.07.2015    source источник
comment
Обычный совет - установить хэш на неправильное значение хеш-функции и позволить nix сказать вам, что это неправильно и каким оно должно быть. :-) Однако он должен быть правильно отформатирован, поэтому я обычно ставлю строку из 52 нулей.   -  person clacke    schedule 06.02.2018


Ответы (2)


Как мне посоветовали в IRC:

>nix-prefetch-git https://github.com/ghcjs/ghcjs-dom
Initialized empty Git repository in /tmp/user/1000/git-checkout-tmp-uxoKqy9s/git-export/.git/
remote: Counting objects: 1070, done.
remote: Compressing objects: 100% (236/236), done.
remote: Total 1070 (delta 858), reused 932 (delta 829), pack-reused 0
Receiving objects: 100% (1070/1070), 580.67 KiB | 911.00 KiB/s, done.
Resolving deltas: 100% (858/858), done.
From https://github.com/ghcjs/ghcjs-dom
 * branch            HEAD       -> FETCH_HEAD
Switched to a new branch 'fetchgit'
git revision is 8b9c64e78e838de95ef1b61f15c0bd7068d45d84
git human-readable version is -- none --
Commit date is 2015-06-08 03:53:22 +1200
removing `.git'...
hash is d05d04cad4aea829dddcf341ed4656d9828713d271f15c94414a74041188bac8
path is /nix/store/kcgbwampbp7qcyxqp4ag8rx2prxnsc19-git-export
d05d04cad4aea829dddcf341ed4656d9828713d271f15c94414a74041188bac8
person jhegedus    schedule 27.07.2015
comment
И вам нужно установить nix-prefetch-scripts, чтобы получить все скрипты выборки. - person asymmetric; 30.01.2017

nix-hash это то, что вам, вероятно, нужно: https://www.mankier.com/1/nix-hash

Используйте эту команду для вычисления sha256, который будет использоваться с fetchurl или подобным:

$ nix-hash --flat --base32 --type sha256 your-file.zip
person Nawaz    schedule 16.03.2020
comment
Это не похоже на открытый исходный код? - person piegames; 11.12.2020