91b3db1309
According to Nixpkgs manual[1] and NixOS 23.11 Release Note[2], the `sourceRoot` attribute passed to `stdenv.mkDerivation` should be specified as `"${src.name}"` or `"${src.name}/subdir"` when `src` is produced using `fetchgit`-based fetchers. `sourceRoot = "source"` or `sourceRoot = "source/subdir"` is based on the assumption that the `name` attribute of these pre-unpacked fetchers are always `"source"`, which is not the case. Expecting constant `name` also makes the source FODs prone to irrelevent hashes during version bumps. [1]: https://nixos.org/manual/nixpkgs/unstable/#var-stdenv-sourceRoot [2]: https://nixos.org/manual/nixos/stable/release-notes#sec-release-23.11
48 lines
1.3 KiB
Nix
48 lines
1.3 KiB
Nix
{ buildPythonPackage
|
|
, fetchFromGitHub
|
|
, sudachidict
|
|
, setuptools
|
|
, sudachipy
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "sudachidict-${sudachidict.dict-type}";
|
|
inherit (sudachidict) version meta;
|
|
pyproject = true;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "WorksApplications";
|
|
repo = "SudachiDict";
|
|
rev = "refs/tags/v${version}";
|
|
hash = "sha256-xJ/iPywOZA2kzHaVU43Bc8TUboj3OpDg1kLFMIc/T90=";
|
|
};
|
|
|
|
sourceRoot = "${src.name}/python";
|
|
|
|
# setup script tries to get data from the network but we use the nixpkgs' one
|
|
postPatch = ''
|
|
substituteInPlace setup.py \
|
|
--replace 'ZIP_NAME = urlparse(ZIP_URL).path.split("/")[-1]' "" \
|
|
--replace "not os.path.exists(RESOURCE_DIR)" "False"
|
|
substituteInPlace INFO.json \
|
|
--replace "%%VERSION%%" ${version} \
|
|
--replace "%%DICT_VERSION%%" ${version} \
|
|
--replace "%%DICT_TYPE%%" ${sudachidict.dict-type}
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
setuptools
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
sudachipy
|
|
];
|
|
|
|
# we need to prepare some files before the build
|
|
# https://github.com/WorksApplications/SudachiDict/blob/develop/package_python.sh
|
|
preBuild = ''
|
|
install -Dm644 ${sudachidict}/share/system.dic -t sudachidict_${sudachidict.dict-type}/resources
|
|
touch sudachidict_${sudachidict.dict-type}/__init__.py
|
|
'';
|
|
}
|