私はPythonアプリケーションをNix用にパッケージ化しようとしていますが、ドキュメントの大部分はライブラリをパッケージ化すると仮定しています。Nixpkgsでは、Pythonの派生をライブラリではなくアプリケーションにする理由は何ですか?
これを行うために、私はpython-packagesにあるRednotebookの例を見ました(それは私がそれがPythonで書かれたことを知っていた以外の特別な理由はありませんでした)が、関連する部分である:
redNotebook = buildPythonPackage rec {
name = "rednotebook-1.8.1";
src = pkgs.fetchurl {
url = "mirror://sourceforge/rednotebook/${name}.tar.gz";
sha256 = "00b7s4xpqpxsbzjvjx9qsx5d84m9pvn383c5di1nsfh35pig0rzn";
};
# no tests available
doCheck = false;
propagatedBuildInputs = with self; [ pygtk pywebkitgtk pyyaml chardet ];
meta = {
homepage = http://rednotebook.sourceforge.net/index.html;
description = "A modern journal that includes a calendar navigation, customizable templates, export functionality and word clouds";
license = licenses.gpl2;
maintainers = with maintainers; [ tstrobel ];
};
};
私の導出は次のようになります。
{ pkgs ? import <nixpkgs> {} }:
let
requirements = import ./nix/requirements.nix { inherit pkgs; };
in
pkgs.python35Packages.buildPythonPackage rec {
name = "package-name";
version = "1.0.0";
namePrefix = "";
src = ./.;
doCheck = false;
propagatedBuildInputs = builtins.attrValues requirements.packages;
}
requirements.nix
はpypi2nix
とrequirements.packages
の出力は "派生のリスト" を入力していました。これにもかかわらず、Rednotebookの結果として得られるストアパスにcdすると、/bin
ディレクトリにいくつかのラッパースクリプトがあります。私のアプリケーションの店舗パスはlib
で、/bin
私はアプリケーションを持っていることをNixpkgに教えてもらえますか?