2016-07-09 6 views
0

Как упаковать плагин для приложения для NixOS?Как упаковать плагины для приложения для NixOS

Наличие приложения с архивом src и несколькими плагинами для установки из другого источника. Я с нетерпением жду примера, как или, возможно, указатель на документацию.

ответ

1

Насколько я знаю, документации по этой теме нет, но вы можете взять пример о том, как управлять pidgin или методами ввода.

Основная идея заключается в том, что есть:

  • Основной пакет.
  • Один или несколько плагинов.
  • Пакет обертки, используя symlinkJoin или аналогичную функцию для присоединения основного пакета и плагинов в один пакет.

определения Так, например, метод fcitx ввода, связанные в all-packages.nix:

fcitx = callPackage ../tools/inputmethods/fcitx { }; 

    fcitx-engines = recurseIntoAttrs { 

    anthy = callPackage ../tools/inputmethods/fcitx-engines/fcitx-anthy { }; 

    chewing = callPackage ../tools/inputmethods/fcitx-engines/fcitx-chewing { }; 

    hangul = callPackage ../tools/inputmethods/fcitx-engines/fcitx-hangul { }; 

    m17n = callPackage ../tools/inputmethods/fcitx-engines/fcitx-m17n { }; 

    mozc = callPackage ../tools/inputmethods/fcitx-engines/fcitx-mozc { 
     inherit (pythonPackages) gyp; 
     protobuf = protobuf.override { stdenv = clangStdenv; }; 
    }; 

    table-other = callPackage ../tools/inputmethods/fcitx-engines/fcitx-table-other { }; 

    cloudpinyin = callPackage ../tools/inputmethods/fcitx-engines/fcitx-cloudpinyin { }; 
    }; 

    fcitx-configtool = callPackage ../tools/inputmethods/fcitx/fcitx-configtool.nix { }; 

    fcitx-with-plugins = callPackage ../tools/inputmethods/fcitx/wrapper.nix { 
    plugins = [ ]; 
    }; 

Так можно установить fcitx с Anthy и m17n плагин, добавив следующее environment.systemPackages списка (или с помощью модуль посвященный nixos):

pkgs.fcitx-with-plugins.override { plugins = [ fcitx-engines.anthy fcitx-engines.m17n ]; }; 

пакет пиджин идет еще один шаг в факторизации по merging the main package and the wrapper.