mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-23 13:48:21 +03:00
makehuman: init at 1.2.0
This commit is contained in:
parent
523e2bbd7b
commit
b9b66cf324
145
pkgs/applications/misc/makehuman/default.nix
Normal file
145
pkgs/applications/misc/makehuman/default.nix
Normal file
@ -0,0 +1,145 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchpatch
|
||||
, fetchFromGitHub
|
||||
, python3
|
||||
, qtbase
|
||||
, qttools
|
||||
, git-lfs
|
||||
, wrapQtAppsHook
|
||||
}:
|
||||
|
||||
let
|
||||
pydeps = with python3.pkgs; [
|
||||
numpy
|
||||
pyqt5
|
||||
pyopengl
|
||||
];
|
||||
python = python3.withPackages (pkgs: pydeps);
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "makehuman";
|
||||
version = "1.2.0";
|
||||
|
||||
source = fetchFromGitHub {
|
||||
owner = "makehumancommunity";
|
||||
repo = "makehuman";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-mCv6H0B7b4uxozpNHkKsG+Is2H0QYEJnnzKCHixhBpY=";
|
||||
name = "${pname}-source";
|
||||
};
|
||||
|
||||
assets = fetchFromGitHub {
|
||||
owner = "makehumancommunity";
|
||||
repo = "makehuman-assets";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Jd2A0PAHVdFMnDLq4Mu5wsK/E6A4QpKjUyv66ix1Gbo=";
|
||||
name = "${pname}-assets-source";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# work with numpy>=1.24
|
||||
(fetchpatch {
|
||||
name = "fix-compile_targets.py-when-using-numpy-1.24.0-or-newer";
|
||||
url = "https://patch-diff.githubusercontent.com/raw/makehumancommunity/makehuman/pull/220.patch";
|
||||
hash = "sha256-ip7U83cCBrl+4gM1GZ2QQIER5Qur6HRu3a/TnHqk//g=";
|
||||
})
|
||||
# crash related to collections.Callable -> collections.abc.Callable
|
||||
(fetchpatch {
|
||||
name = "remove-unnecessary-compatibility-test";
|
||||
url = "https://patch-diff.githubusercontent.com/raw/makehumancommunity/makehuman/pull/188.patch";
|
||||
hash = "sha256-HGrk3n7rhV4YgK8mNUdfHwQl8dFT8yuzjxorvwfMmJw=";
|
||||
})
|
||||
# some OpenGL issue causing blank windows on recent Qt
|
||||
(fetchpatch {
|
||||
name = "qt-opengl-update-from-qglwidget-to-qopenglwidget-to-fix-blank";
|
||||
url = "https://patch-diff.githubusercontent.com/raw/makehumancommunity/makehuman/pull/197.patch";
|
||||
hash = "sha256-fEqBwg1Jd36nKWIT9XPr6Buj1N3AmTQg2LBaoX3eTxw=";
|
||||
})
|
||||
# multisampling issue
|
||||
(fetchpatch {
|
||||
name = "switch-default-for-multisampling-and-disable-sample-buffers";
|
||||
url = "https://github.com/makehumancommunity/makehuman/commit/c47b884028a24eb190d097e7523a3059e439cb6f.patch";
|
||||
hash = "sha256-tknQHX9qQYH15gyOLNhxfO3bsFVIv3Z1F7ZXD1IT1h4=";
|
||||
})
|
||||
# PyQt >= 5.12
|
||||
(fetchpatch {
|
||||
name = "fix-scrolling-issue-on-pyqt5>=5.12";
|
||||
url = "https://github.com/makehumancommunity/makehuman/commit/02c4269a2d4c57f68159fe8f437a8b1978b99099.patch";
|
||||
hash = "sha256-yR5tZcELX0N83PW/vS6yB5xKoZcHhVp48invlu7quWM=";
|
||||
})
|
||||
];
|
||||
|
||||
srcs = [
|
||||
source
|
||||
assets
|
||||
];
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
nativeBuildInputs = [
|
||||
python
|
||||
qtbase
|
||||
git-lfs
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
python
|
||||
qtbase
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
pydeps
|
||||
];
|
||||
|
||||
finalSource = "${pname}-final";
|
||||
|
||||
postUnpack = ''
|
||||
mkdir -p $finalSource
|
||||
cp -r $source/makehuman $finalSource
|
||||
chmod u+w $finalSource --recursive
|
||||
cp -r $assets/base/* $finalSource/makehuman/data
|
||||
chmod u+w $finalSource --recursive
|
||||
sourceRoot=$finalSource
|
||||
'';
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
pushd ./makehuman
|
||||
bash ./cleannpz.sh
|
||||
bash ./cleanpyc.sh
|
||||
python3 ./compile_targets.py
|
||||
python3 ./compile_models.py
|
||||
python3 ./compile_proxies.py
|
||||
popd
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
mkdir -p $out/opt $out/bin
|
||||
cp -r * $out/opt
|
||||
python -m compileall -o 0 -o 2 $out/opt
|
||||
ln -s $out/opt/makehuman/makehuman.py $out/bin/makehuman
|
||||
chmod +x $out/bin/makehuman
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
wrapQtApp $out/bin/makehuman
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Software to create realistic humans";
|
||||
homepage = "http://www.makehumancommunity.org/";
|
||||
license = with lib.licenses; [ agpl3Plus cc0 ];
|
||||
longDescription = ''
|
||||
MakeHuman is a GUI program for procedurally generating
|
||||
realistic-looking humans.
|
||||
'';
|
||||
mainProgram = "makehuman";
|
||||
maintainers = with lib.maintainers; [ elisesouche ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
@ -1941,6 +1941,8 @@ with pkgs;
|
||||
|
||||
linux-router-without-wifi = linux-router.override { useWifiDependencies = false; };
|
||||
|
||||
makehuman = libsForQt5.callPackage ../applications/misc/makehuman { };
|
||||
|
||||
markdownlint-cli = callPackage ../tools/text/markdownlint-cli { };
|
||||
|
||||
markdownlint-cli2 = callPackage ../tools/text/markdownlint-cli2 { };
|
||||
|
Loading…
Reference in New Issue
Block a user