Принудительное использование стека Haskell для версии 1.7. * В NixOS - PullRequest
0 голосов
/ 23 июня 2018

Context.

  1. Я использую NixOS, с stack, включенным в мой configuration.nix.
  2. Запуск stack --version Выход Version 1.6.3 x86_64.
  3. Но мне нужна версия >=1.7, чтобы скомпилировать передовой пакет Haskell, над которым работает моя команда.
  4. Текущая версия поиска nixpkgs - 1.6.5, что в любом случае слишком старо.
  5. Я думаю, что обычно не в NixOS вы можете просто запустить «обновление стека» в своей домашней папке, но, похоже, это не сработает.

Вопрос: Кто-нибудь знает, как заставить стек в NixOS скомпилироваться в версию, т.е. 1.7.1?

1 Ответ

0 голосов
/ 25 июня 2018

Добавление этого оверлея должно помочь:

(self: super: {
  haskellPackages = super.haskellPackages.extend
    (hself: hsuper: {
      stack = (hsuper.callHackage "stack" "1.7.1" {})
              .overrideScope (hself2: hsuper2: {
        Cabal = hself2.Cabal_2_2_0_1;
        hpack = hself2.hpack_0_28_2;
      });
    });
})

Это успешно создает stack на мастере Nixpkgs.Он будет доступен как атрибут stack или haskellPackages.stack.

...