BPY: rewrite as overlay

This commit is contained in:
brothermechanic 2024-03-05 08:06:32 +03:00
parent 4d70a7153b
commit c7a6ae86b8
No known key found for this signature in database
GPG key ID: 9C59EF9503ACD106
7 changed files with 21 additions and 411 deletions

View file

@ -52,7 +52,7 @@
# robossembler custom packages; defined here for share between devShells and packages
cg_preferences = pkgs.fetchgit {
url = "https://gitflic.ru/project/brothermechanic/cg_preferences.git";
sha256 = "sha256-ahEakvluX7vd+OY6zaDeZIFS8WbsTevRzuEXlBu2/fg=";
sha256 = "sha256-/mNNjvrhIxSZVv1/LSJ7+c/dXH3E0Orh5Zr0oVPLquY=";
};
rs_logo = pkgs.fetchgit {
url = "https://gitlab.com/robossembler/logo.git";
@ -75,7 +75,7 @@
patches = old.patches ++ [ "${cg_preferences}/patches/cg-defaults.patch" ];
buildInputs = old.buildInputs ++ [ pkgs.imath pkgs.git ];
postPatch = old.postPatch + ''
cp ${cg_preferences}/share/cg_preferences_service.py scripts/startup/
cp ${cg_preferences}/share/00_cg_preferences_service.py scripts/startup/
cp ${cg_preferences}/share/startup.blend release/datafiles/
cp ${rs_logo}/raster/robossembler_1024x512_roboty-rossii.png release/datafiles/splash.png
'';
@ -86,7 +86,25 @@
}/scripts/addons/
'';
});
bpy = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/bpy { };
bpy = blender.overrideAttrs (old: {
pname = "bpy";
cmakeFlags = old.cmakeFlags ++ [
"-DWITH_PYTHON_INSTALL=OFF"
"-DWITH_AUDASPACE=OFF"
"-DWITH_PYTHON_MODULE=ON"
"-DWITH_MEM_JEMALLOC=OFF"
"-DWITH_INSTALL_PORTABLE=ON"
];
postInstall = ''
mkdir -p $out/lib/python${pkgs.python3.pythonVersion}/site-packages
mkdir -p $out/nix-support
mv $out/bpy $out/lib/python${pkgs.python3.pythonVersion}/site-packages/
echo ${pkgs.python3} >> $out/nix-support/propagated-build-inputs
'';
postFixup = ''
buildPythonPath $out/lib/python${pkgs.python3.pythonVersion}/site-packages
'';
});
pysdf = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pysdf { };
pytorch3d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pytorch3d { };
mayo = pkgs.libsForQt5.callPackage ./pkgs/misc/mayo { };

View file

@ -1,10 +0,0 @@
--- a/intern/locale/boost_locale_wrapper.cpp
+++ b/intern/locale/boost_locale_wrapper.cpp
@@ -7,6 +7,7 @@
#include <boost/locale.hpp>
#include <stdio.h>
+#include <iostream>
#include "boost_locale_wrapper.h"

View file

@ -1,10 +0,0 @@
--- a/release/freedesktop/blender.desktop
+++ b/release/freedesktop/blender.desktop
@@ -84,6 +84,6 @@ Icon=blender
Terminal=false
Type=Application
PrefersNonDefaultGPU=true
-X-KDE-RunOnDiscreteGpu=true
+X-PreferRunOnDiscreteGPU=true
Categories=Graphics;3DGraphics;
MimeType=application/x-blender;

View file

@ -1,84 +0,0 @@
diff -Naur a/source/blender/makesdna/DNA_modifier_defaults.h b/source/blender/makesdna/DNA_modifier_defaults.h
--- a/source/blender/makesdna/DNA_modifier_defaults.h 2020-12-24 20:07:32.000000000 +0300
+++ b/source/blender/makesdna/DNA_modifier_defaults.h 2020-12-28 00:11:53.397550988 +0300
@@ -43,7 +43,7 @@
.length = 0.0f, \
.merge_dist = 0.01f, \
.fit_type = MOD_ARR_FIXEDCOUNT, \
- .offset_type = MOD_ARR_OFF_RELATIVE, \
+ .offset_type = MOD_ARR_OFF_CONST, \
.flags = 0, \
.count = 2, \
.uv_offset = {0.0f, 0.0f}, \
@@ -51,8 +51,8 @@
#define _DNA_DEFAULT_BevelModifierData \
{ \
- .value = 0.1f, \
- .res = 1, \
+ .value = 0.01f, \
+ .res = 2, \
.flags = 0, \
.val_flags = MOD_BEVEL_AMT_OFFSET, \
.profile_type = MOD_BEVEL_PROFILE_SUPERELLIPSE, \
@@ -93,7 +93,7 @@
#define _DNA_DEFAULT_CastModifierData \
{ \
.object = NULL, \
- .fac = 0.5f, \
+ .fac = 1.0f, \
.radius = 0.0f, \
.size = 0.0f, \
.defgrp_name = "", \
@@ -259,7 +259,7 @@
#define _DNA_DEFAULT_DecimateModifierData \
{ \
- .percent = 1.0f, \
+ .percent = 0.1f, \
.iter = 0, \
.delimit = 0, \
.symmetry_axis = 0, \
@@ -567,7 +567,7 @@
.vgroup_name = "", \
.factor = DEG2RADF(45.0f), \
.limit = {0.0f, 1.0f}, \
- .mode = MOD_SIMPLEDEFORM_MODE_TWIST, \
+ .mode = MOD_SIMPLEDEFORM_MODE_BEND, \
.axis = 0, \
.deform_axis = 0, \
.flag = 0, \
@@ -608,7 +608,7 @@
.crease_inner = 0.0f, \
.crease_outer = 0.0f, \
.crease_rim = 0.0f, \
- .flag = MOD_SOLIDIFY_RIM, \
+ .flag = MOD_SOLIDIFY_RIM | MOD_SOLIDIFY_EVEN, \
.mat_ofs = 0, \
.mat_ofs_rim = 0, \
.merge_tolerance = 0.0001f, \
@@ -619,7 +619,7 @@
.subdivType = 0, \
.levels = 1, \
.renderLevels = 2, \
- .flags = eSubsurfModifierFlag_UseCrease | eSubsurfModifierFlag_ControlEdges, \
+ .flags = eSubsurfModifierFlag_UseCrease | eSubsurfModifierFlag_ControlEdges | eSubsurfModifierFlag_UseRecursiveSubdivision, \
.uv_smooth = SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES, \
.quality = 3, \
.boundary_smooth = SUBSURF_BOUNDARY_SMOOTH_ALL, \
diff -Naur a/source/blender/makesdna/DNA_view3d_defaults.h b/source/blender/makesdna/DNA_view3d_defaults.h
--- a/source/blender/makesdna/DNA_view3d_defaults.h 2020-12-24 20:07:32.000000000 +0300
+++ b/source/blender/makesdna/DNA_view3d_defaults.h 2020-12-27 22:52:32.467466785 +0300
@@ -94,9 +94,9 @@
.flag = V3D_SELECT_OUTLINE, \
.flag2 = V3D_SHOW_RECONSTRUCTION | V3D_SHOW_ANNOTATION, \
\
- .lens = 50.0f, \
- .clip_start = 0.01f, \
- .clip_end = 1000.0f, \
+ .lens = 85.0f, \
+ .clip_start = 0.001f, \
+ .clip_end = 100.0f, \
\
.bundle_size = 0.2f, \
.bundle_drawtype = OB_PLAINAXES, \

View file

@ -1,45 +0,0 @@
--- /dev/null 2023-08-11 22:07:27.012000310 +0300
+++ b/scripts/startup/cg_environment.py 2023-08-11 00:44:51.704718595 +0300
@@ -0,0 +1,42 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+# Copyright (C) 2023 Ilia Kurochkin <brothermechanic@gmail.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+__doc__ = 'Environment for use CG Overlay'
+__version__ = '0.1'
+
+import bpy
+from bpy.app.handlers import persistent
+import addon_utils
+
+
+@persistent
+def cg_env(dummy):
+ '''Scripts environment'''
+ addon_utils.enable('cg_preferences', default_set=True)
+
+ print('CG Environment activated!')
+
+
+def register():
+ '''register blender module'''
+ bpy.app.handlers.load_post.append(cg_env)
+
+
+def unregister():
+ '''unregister blender module'''
+ bpy.app.handlers.load_post.remove(cg_env)
+
+
+if __name__ == '__main__':
+ register()

View file

@ -1,213 +0,0 @@
# TODO WITH_CYCLES_OSL
# TODO WITH_NANOVDB
# TODO WITH_CLANG
{ config, stdenv, lib, fetchurl, fetchzip, fetchgit, makeWrapper, cmake, git-lfs
, boost, ocl-icd, gettext, zlib, zstd, pugixml, llvmPackages, clang
, libepoxy, libXi, libX11, libXext, libXrender, libXxf86vm
, libGLU, libGL, glew, addOpenGLRunpath, freeglut
, openimageio, opencolorio, openexr, ilmbase, libjpeg, libpng, libtiff, libwebp, potrace
, embree, gmp, openvdb, tbb, openimagedenoise, opensubdiv, freetype, libharu, brotli
, ffmpeg, fftw, libsndfile
, python310Packages, buildPythonPackage, fetchPypi, pkgs, lzma, freecad
, cudaSupport ? config.cudaSupport or false, cudaPackages ? { }
, hipSupport ? false, hip # comes with a significantly larger closure size
, colladaSupport ? true, opencollada
, waylandSupport ? stdenv.isLinux, pkg-config, wayland, wayland-protocols, libffi, libdecor, libxkbcommon, dbus
}:
let
python = python310Packages.python;
optix = fetchzip {
# url taken from the archlinux blender PKGBUILD
url = "https://developer.download.nvidia.com/redist/optix/v7.4/OptiX-7.4.0-Include.zip";
sha256 = "sha256-ca08XetwaUYC9foeP5bff9kcDfuFgEzopvjspn2s8RY=";
};
cg_preferences = fetchgit {
url = "https://gitlab.com/brothermechanic/cg_preferences.git";
rev = "db192525ff41dfae4c063dc914a2c3fe5850d480";
sha256 = "sha256-+eLWdokH/5odzOTykgrmG36U8h+Wf8YGOxe1oIy4dJo=";
fetchLFS = true;
};
in
stdenv.mkDerivation rec {
pname = "bpy";
version = "3.6.1";
src = fetchurl {
url = "https://download.blender.org/source/blender-${version}.tar.xz";
hash = "sha256-JJF+cbyya0kAJXBU2do4tiMWx0J9cyNTO0HKmztFrE0=";
};
patches = [
./cg-defaults.patch
./x112.patch
./blender-fix-desktop.patch
./blender-fix-boost-1.81-iostream.patch
];
nativeBuildInputs =
[ cmake makeWrapper python310Packages.wrapPython llvmPackages.llvm.dev
]
++ lib.optionals cudaSupport [ addOpenGLRunpath ]
++ lib.optionals waylandSupport [ pkg-config ];
buildInputs =
[ boost ffmpeg gettext glew ilmbase
freetype libjpeg libpng libsndfile libtiff libwebp
opencolorio openexr openimageio python zlib pkgs.zstd.dev fftw
(opensubdiv.override { inherit cudaSupport; })
tbb
gmp
pugixml
potrace
libharu
brotli
libepoxy
lzma
optix
]
++ lib.optionals waylandSupport [
wayland wayland-protocols libffi libdecor libxkbcommon dbus
]
++ lib.optionals (!stdenv.isAarch64) [
openimagedenoise
embree
]
++ (if (!stdenv.isDarwin) then [
libXi libX11 libXext libXrender
libGLU libGL
libXxf86vm
# OpenVDB currently doesn't build on darwin
openvdb
]
else [
llvmPackages.openmp clang
])
++ lib.optional cudaSupport cudaPackages.cudatoolkit
++ lib.optional colladaSupport opencollada
;
pythonPath = with python310Packages; [ numpy requests ];
postPatch = ''
cp ${cg_preferences}/startup.blend release/datafiles/
'' +
(if stdenv.isDarwin then ''
: > build_files/cmake/platform/platform_apple_xcode.cmake
substituteInPlace source/creator/CMakeLists.txt \
--replace '${"$"}{LIBDIR}/python' \
'${python}'
substituteInPlace build_files/cmake/platform/platform_apple.cmake \
--replace '${"$"}{LIBDIR}/python' \
'${python}' \
--replace '${"$"}{LIBDIR}/opencollada' \
'${opencollada}' \
--replace '${"$"}{PYTHON_LIBPATH}/site-packages/numpy' \
'${python310Packages.numpy}/${python.sitePackages}/numpy'
'' else ''
substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ocl-icd}/lib/libOpenCL.so"'
'') +
(lib.optionalString hipSupport ''
substituteInPlace extern/hipew/src/hipew.c --replace '"/opt/rocm/hip/lib/libamdhip64.so"' '"${hip}/lib/libamdhip64.so"'
substituteInPlace extern/hipew/src/hipew.c --replace '"opt/rocm/hip/bin"' '"${hip}/bin"'
'');
cmakeFlags =
[
"-DWITH_PYTHON_INSTALL=OFF"
"-DWITH_AUDASPACE=OFF"
"-DWITH_PYTHON_MODULE=ON"
"-DWITH_MEM_JEMALLOC=OFF"
"-DWITH_INSTALL_PORTABLE=ON"
#___________
"-DPYTHON_LIBPATH=${python}/lib"
"-DPYTHON_VERSION=${python.pythonVersion}"
"-DPYTHON_INCLUDE_DIR=${python}/include/${python.libPrefix}"
"-DPYTHON_LIBRARY=${python.libPrefix}"
"-DWITH_PYTHON_INSTALL_NUMPY=OFF"
"-DPYTHON_NUMPY_PATH=${python310Packages.numpy}/${python.sitePackages}"
"-DPYTHON_NUMPY_INCLUDE_DIRS=${python310Packages.numpy}/${python.sitePackages}/numpy/core/include"
"-DWITH_PYTHON_INSTALL_REQUESTS=OFF"
"-DWITH_ALEMBIC=OFF"
"-DWITH_OPENVDB=ON"
"-DWITH_NANOVDB=ON"
"-DWITH_IMAGE_OPENJPEG=OFF"
"-DWITH_OPENCOLLADA=${if colladaSupport then "ON" else "OFF"}"
"-DWITH_OPENAL=OFF"
"-DWITH_SDL=OFF"
"-DWITH_PULSEAUDIO=OFF"
"-DWITH_JACK=OFF"
"-DWITH_OPENMP=ON"
"-DWITH_OPENCOLORIO=ON"
"-DWITH_OPENSUBDIV=ON"
"-DWITH_TBB=ON"
"-DWITH_USD=OFF"
"-DWITH_XR_OPENXR=OFF"
"-DWITH_NINJA_POOL_JOBS=OFF"
"-DBUILD_SHARED_LIBS=OFF"
"-DWITH_BUILDINFO=OFF"
"-DWITH_HYDRA=OFF"
"-DWITH_MATERIALX=OFF"
"-DWITH_LINKER_LLD=ON"
"-DWITH_LIBS_PRECOMPILED=OFF"
"-DWITH_INTERNATIONAL=ON"
]
++ lib.optionals stdenv.hostPlatform.isAarch64 [
"-DWITH_CYCLES_EMBREE=OFF"
]
++ lib.optionals stdenv.isDarwin [
"-DWITH_CYCLES_OSL=OFF" # requires LLVM
"-DWITH_OPENVDB=OFF" # OpenVDB currently doesn't build on darwin
"-DLIBDIR=/does-not-exist"
]
++ lib.optionals cudaSupport [
"-DWITH_CYCLES_CUDA_BINARIES=ON"
"-DCUDA_NVCC_FLAGS=-std=c++14"
"-DWITH_CYCLES_DEVICE_OPTIX=ON"
"-DOPTIX_INCLUDE_DIR=${optix}"
]
# Clang doesn't support "-export-dynamic"
++ lib.optional stdenv.cc.isClang "-DPYTHON_LINKFLAGS="
++ lib.optionals waylandSupport [
"-DWITH_GHOST_WAYLAND=ON"
"-DWITH_GHOST_WAYLAND_DBUS=ON"
"-DWITH_GHOST_WAYLAND_DYNLOAD=OFF"
"-DWITH_GHOST_WAYLAND_LIBDECOR=ON"
];
env.NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}";
# Since some dependencies are built with gcc 6, we need gcc 6's
# libstdc++ in our RPATH. Sigh.
NIX_LDFLAGS = lib.optionalString cudaSupport "-rpath ${stdenv.cc.cc.lib}/lib";
postInstall = ''
mkdir -p $out/lib/python3.10/site-packages
mkdir -p $out/nix-support
mv $out/bpy $out/lib/python3.10/site-packages/
echo ${python} >> $out/nix-support/propagated-build-inputs
'' + ''
mkdir $out/lib/python3.10/site-packages/bpy/3.6/scripts/addons/cg_preferences
cp -r ${cg_preferences}/* $out/lib/python3.10/site-packages/bpy/3.6/scripts/addons/cg_preferences/
'';
# Set RUNPATH so that libcuda and libnvrtc in /run/opengl-driver(-32)/lib can be
# found. See the explanation in libglvnd.
postFixup = ''
buildPythonPath $out/lib/python3.10/site-packages
'';
passthru = { inherit python; };
meta = with lib; {
description = "3D Creation/Animation/Publishing System module";
homepage = "https://www.blender.org";
# They comment two licenses: GPLv2 and Blender License, but they
# say: "We've decided to cancel the BL offering for an indefinite period."
# OptiX, enabled with cudaSupport, is non-free.
license = with licenses; [ gpl2Plus ] ++ optional cudaSupport unfree;
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
broken = stdenv.isDarwin;
maintainers = with maintainers; [ goibhniu veprbl brothermechanic ];
mainProgram = "bpy";
};
}

View file

@ -1,46 +0,0 @@
--- a/intern/ghost/CMakeLists.txt
+++ b/intern/ghost/CMakeLists.txt
@@ -183,6 +183,13 @@
${X11_X11_INCLUDE_PATH}
)
+ list(APPEND LIB
+ ${X11_X11_LIB}
+ -lXext
+ -lXxf86vm
+ ${X11_Xrender_LIB}
+ )
+
list(APPEND SRC
intern/GHOST_DisplayManagerX11.cpp
intern/GHOST_SystemX11.cpp
@@ -234,6 +241,9 @@
list(APPEND INC_SYS
${X11_xf86vmode_INCLUDE_PATH}
)
+ list(APPEND LIB
+ ${X11_Xf86vmode_LIB}
+ )
endif()
if(WITH_X11_XFIXES)
@@ -241,6 +251,9 @@
list(APPEND INC_SYS
${X11_Xfixes_INCLUDE_PATH}
)
+ list(APPEND LIB
+ ${X11_Xfixes_LIB}
+ )
endif()
if(WITH_X11_ALPHA)
@@ -252,6 +265,9 @@
list(APPEND INC_SYS
${X11_Xinput_INCLUDE_PATH}
)
+ list(APPEND LIB
+ ${X11_Xinput_LIB}
+ )
endif()
add_definitions(-DWITH_GHOST_X11)