gnu: blender: Restore version 2.79b for systems without OpenGL 3.
Fixes <https://bugs.gnu.org/33882>. * gnu/packages/graphics.scm (blender-2.79): New variable. (blender)[description]: Remove obsolete claim that the stable release no longer works in Guix. * gnu/packages/patches/blender-2.79-newer-ffmpeg.patch, gnu/packages/patches/blender-2.79-python-3.7-fix.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them.
This commit is contained in:
parent
933cc19684
commit
8b672b2c48
|
@ -672,6 +672,8 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/beignet-correct-file-names.patch \
|
%D%/packages/patches/beignet-correct-file-names.patch \
|
||||||
%D%/packages/patches/biber-fix-encoding-write.patch \
|
%D%/packages/patches/biber-fix-encoding-write.patch \
|
||||||
%D%/packages/patches/binutils-loongson-workaround.patch \
|
%D%/packages/patches/binutils-loongson-workaround.patch \
|
||||||
|
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
|
||||||
|
%D%/packages/patches/blender-2.79-python-3.7-fix.patch \
|
||||||
%D%/packages/patches/boost-fix-icu-build.patch \
|
%D%/packages/patches/boost-fix-icu-build.patch \
|
||||||
%D%/packages/patches/byobu-writable-status.patch \
|
%D%/packages/patches/byobu-writable-status.patch \
|
||||||
%D%/packages/patches/calibre-no-updates-dialog.patch \
|
%D%/packages/patches/calibre-no-updates-dialog.patch \
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
;;; Copyright © 2018 Alex Kost <alezost@gmail.com>
|
;;; Copyright © 2018 Alex Kost <alezost@gmail.com>
|
||||||
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
|
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
|
||||||
|
;;; Copyright © 2019 Mark H Weaver <mhw@netris.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -165,10 +166,98 @@ the 3D pipeline—modeling, rigging, animation, simulation, rendering,
|
||||||
compositing and motion tracking, even video editing and game creation. The
|
compositing and motion tracking, even video editing and game creation. The
|
||||||
application can be customized via its API for Python scripting.
|
application can be customized via its API for Python scripting.
|
||||||
|
|
||||||
WARNING: This package offers a beta build of Blender, because the stable release
|
WARNING: This is a beta build of Blender.")
|
||||||
no longer works in Guix. See @uref{https://issues.guix.info/issue/33882}.")
|
|
||||||
(license license:gpl2+))))
|
(license license:gpl2+))))
|
||||||
|
|
||||||
|
(define-public blender-2.79
|
||||||
|
(package
|
||||||
|
(name "blender")
|
||||||
|
(version "2.79b")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.blender.org/source/"
|
||||||
|
"blender-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1g4kcdqmf67srzhi3hkdnr4z1ph4h9sza1pahz38mrj998q4r52c"))
|
||||||
|
(patches (search-patches "blender-2.79-newer-ffmpeg.patch"
|
||||||
|
"blender-2.79-python-3.7-fix.patch"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(arguments
|
||||||
|
(let ((python-version (version-major+minor (package-version python))))
|
||||||
|
`(;; Test files are very large and not included in the release tarball.
|
||||||
|
#:tests? #f
|
||||||
|
#:configure-flags
|
||||||
|
(list "-DWITH_CODEC_FFMPEG=ON"
|
||||||
|
"-DWITH_CODEC_SNDFILE=ON"
|
||||||
|
"-DWITH_CYCLES=ON"
|
||||||
|
"-DWITH_DOC_MANPAGE=ON"
|
||||||
|
"-DWITH_FFTW3=ON"
|
||||||
|
"-DWITH_GAMEENGINE=ON"
|
||||||
|
"-DWITH_IMAGE_OPENJPEG=ON"
|
||||||
|
"-DWITH_INPUT_NDOF=ON"
|
||||||
|
"-DWITH_INSTALL_PORTABLE=OFF"
|
||||||
|
"-DWITH_JACK=ON"
|
||||||
|
"-DWITH_MOD_OCEANSIM=ON"
|
||||||
|
"-DWITH_PLAYER=ON"
|
||||||
|
"-DWITH_PYTHON_INSTALL=OFF"
|
||||||
|
"-DWITH_PYTHON_INSTALL=OFF"
|
||||||
|
"-DWITH_SYSTEM_OPENJPEG=ON"
|
||||||
|
(string-append "-DPYTHON_LIBRARY=python" ,python-version "m")
|
||||||
|
(string-append "-DPYTHON_LIBPATH=" (assoc-ref %build-inputs "python")
|
||||||
|
"/lib")
|
||||||
|
(string-append "-DPYTHON_INCLUDE_DIR=" (assoc-ref %build-inputs "python")
|
||||||
|
"/include/python" ,python-version "m")
|
||||||
|
(string-append "-DPYTHON_VERSION=" ,python-version))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'fix-broken-import
|
||||||
|
(lambda _
|
||||||
|
(substitute* "release/scripts/addons/io_scene_fbx/json2fbx.py"
|
||||||
|
(("import encode_bin") "from . import encode_bin"))
|
||||||
|
#t))
|
||||||
|
(add-after 'set-paths 'add-ilmbase-include-path
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
;; OpenEXR propagates ilmbase, but its include files do not appear
|
||||||
|
;; in the CPATH, so we need to add "$ilmbase/include/OpenEXR/" to
|
||||||
|
;; the CPATH to satisfy the dependency on "half.h".
|
||||||
|
(setenv "CPATH"
|
||||||
|
(string-append (assoc-ref inputs "ilmbase")
|
||||||
|
"/include/OpenEXR"
|
||||||
|
":" (or (getenv "CPATH") "")))
|
||||||
|
#t))))))
|
||||||
|
(inputs
|
||||||
|
`(("boost" ,boost)
|
||||||
|
("jemalloc" ,jemalloc)
|
||||||
|
("libx11" ,libx11)
|
||||||
|
("openimageio" ,openimageio)
|
||||||
|
("openexr" ,openexr)
|
||||||
|
("ilmbase" ,ilmbase)
|
||||||
|
("openjpeg" ,openjpeg-1)
|
||||||
|
("libjpeg" ,libjpeg)
|
||||||
|
("libpng" ,libpng)
|
||||||
|
("libtiff" ,libtiff)
|
||||||
|
("ffmpeg" ,ffmpeg)
|
||||||
|
("fftw" ,fftw)
|
||||||
|
("jack" ,jack-1)
|
||||||
|
("libsndfile" ,libsndfile)
|
||||||
|
("freetype" ,freetype)
|
||||||
|
("glew" ,glew)
|
||||||
|
("openal" ,openal)
|
||||||
|
("python" ,python)
|
||||||
|
("zlib" ,zlib)))
|
||||||
|
(home-page "https://blender.org/")
|
||||||
|
(synopsis "3D graphics creation suite")
|
||||||
|
(description
|
||||||
|
"Blender is a 3D graphics creation suite. It supports the entirety of
|
||||||
|
the 3D pipeline—modeling, rigging, animation, simulation, rendering,
|
||||||
|
compositing and motion tracking, even video editing and game creation. The
|
||||||
|
application can be customized via its API for Python scripting.
|
||||||
|
|
||||||
|
NOTE: This older version of Blender is the last release that does not require
|
||||||
|
OpenGL 3. It is retained for use with older computers.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
(define-public assimp
|
(define-public assimp
|
||||||
(package
|
(package
|
||||||
(name "assimp")
|
(name "assimp")
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
https://sources.debian.org/data/main/b/blender/2.79.b+dfsg0-4/debian/patches/0008-fix_building_with_latest_versions_of_FFmpeg.patch
|
||||||
|
|
||||||
|
From: Bastien Montagne <montagne29@wanadoo.fr>
|
||||||
|
Date: Tue, 8 May 2018 16:00:52 +0200
|
||||||
|
Subject: fix_building_with_latest_versions_of_FFmpeg
|
||||||
|
|
||||||
|
Some years-old deprecated stuff has now been removed.
|
||||||
|
|
||||||
|
Correct solution is probably to use valid defines etc. in own code, but
|
||||||
|
this is more FFMEPG maintainer task (since it also may change how old
|
||||||
|
FFMPEG we do support...).
|
||||||
|
---
|
||||||
|
intern/ffmpeg/ffmpeg_compat.h | 39 ++++++++++++++++++++++++++
|
||||||
|
source/blender/blenkernel/intern/writeffmpeg.c | 3 +-
|
||||||
|
2 files changed, 41 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/intern/ffmpeg/ffmpeg_compat.h b/intern/ffmpeg/ffmpeg_compat.h
|
||||||
|
index 9c06c8a..f7f437c 100644
|
||||||
|
--- a/intern/ffmpeg/ffmpeg_compat.h
|
||||||
|
+++ b/intern/ffmpeg/ffmpeg_compat.h
|
||||||
|
@@ -109,6 +109,45 @@ int av_sample_fmt_is_planar(enum AVSampleFormat sample_fmt)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+/* XXX TODO Probably fix to correct modern flags in code? Not sure how old FFMPEG we want to support though,
|
||||||
|
+ * so for now this will do. */
|
||||||
|
+
|
||||||
|
+#ifndef FF_MIN_BUFFER_SIZE
|
||||||
|
+# ifdef AV_INPUT_BUFFER_MIN_SIZE
|
||||||
|
+# define FF_MIN_BUFFER_SIZE AV_INPUT_BUFFER_MIN_SIZE
|
||||||
|
+# endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#ifndef FF_INPUT_BUFFER_PADDING_SIZE
|
||||||
|
+# ifdef AV_INPUT_BUFFER_PADDING_SIZE
|
||||||
|
+# define FF_INPUT_BUFFER_PADDING_SIZE AV_INPUT_BUFFER_PADDING_SIZE
|
||||||
|
+# endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#ifndef CODEC_FLAG_GLOBAL_HEADER
|
||||||
|
+# ifdef AV_CODEC_FLAG_GLOBAL_HEADER
|
||||||
|
+# define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
|
||||||
|
+# endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#ifndef CODEC_FLAG_GLOBAL_HEADER
|
||||||
|
+# ifdef AV_CODEC_FLAG_GLOBAL_HEADER
|
||||||
|
+# define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
|
||||||
|
+# endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#ifndef CODEC_FLAG_INTERLACED_DCT
|
||||||
|
+# ifdef AV_CODEC_FLAG_INTERLACED_DCT
|
||||||
|
+# define CODEC_FLAG_INTERLACED_DCT AV_CODEC_FLAG_INTERLACED_DCT
|
||||||
|
+# endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#ifndef CODEC_FLAG_INTERLACED_ME
|
||||||
|
+# ifdef AV_CODEC_FLAG_INTERLACED_ME
|
||||||
|
+# define CODEC_FLAG_INTERLACED_ME AV_CODEC_FLAG_INTERLACED_ME
|
||||||
|
+# endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* FFmpeg upstream 1.0 is the first who added AV_ prefix. */
|
||||||
|
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(54, 59, 100)
|
||||||
|
# define AV_CODEC_ID_NONE CODEC_ID_NONE
|
||||||
|
diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c
|
||||||
|
index a19e414..04d508a 100644
|
||||||
|
--- a/source/blender/blenkernel/intern/writeffmpeg.c
|
||||||
|
+++ b/source/blender/blenkernel/intern/writeffmpeg.c
|
||||||
|
@@ -605,7 +605,8 @@ static AVStream *alloc_video_stream(FFMpegContext *context, RenderData *rd, int
|
||||||
|
c->rc_buffer_aggressivity = 1.0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- c->me_method = ME_EPZS;
|
||||||
|
+ /* Deprecated and not doing anything since July 2015, deleted in recent ffmpeg */
|
||||||
|
+ //c->me_method = ME_EPZS;
|
||||||
|
|
||||||
|
codec = avcodec_find_encoder(c->codec_id);
|
||||||
|
if (!codec)
|
|
@ -0,0 +1,43 @@
|
||||||
|
Copied from https://git.blender.org/gitweb/gitweb.cgi/blender.git/patch/1db47a2ccd1e68994bf8140eba6cc2a26a2bc91f
|
||||||
|
Fixes <https://bugs.gnu.org/33608>.
|
||||||
|
|
||||||
|
From 1db47a2ccd1e68994bf8140eba6cc2a26a2bc91f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Campbell Barton <ideasman42@gmail.com>
|
||||||
|
Date: Thu, 12 Jul 2018 08:28:06 +0200
|
||||||
|
Subject: [PATCH] Fix PyRNA class registration w/ Python 3.7
|
||||||
|
|
||||||
|
In Python3.7 this now raises an error.
|
||||||
|
---
|
||||||
|
source/blender/python/intern/bpy_rna.c | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
|
||||||
|
index 9052b6f580a..80b0aa7a51b 100644
|
||||||
|
--- a/source/blender/python/intern/bpy_rna.c
|
||||||
|
+++ b/source/blender/python/intern/bpy_rna.c
|
||||||
|
@@ -7577,10 +7577,12 @@ static int bpy_class_validate_recursive(PointerRNA *dummyptr, StructRNA *srna, v
|
||||||
|
if (!(flag & PROP_REGISTER))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
+ /* TODO(campbell): Use Python3.7x _PyObject_LookupAttr(), also in the macro below. */
|
||||||
|
identifier = RNA_property_identifier(prop);
|
||||||
|
item = PyObject_GetAttrString(py_class, identifier);
|
||||||
|
|
||||||
|
if (item == NULL) {
|
||||||
|
+ PyErr_Clear();
|
||||||
|
/* Sneaky workaround to use the class name as the bl_idname */
|
||||||
|
|
||||||
|
#define BPY_REPLACEMENT_STRING(rna_attr, py_attr) \
|
||||||
|
@@ -7596,6 +7598,9 @@ static int bpy_class_validate_recursive(PointerRNA *dummyptr, StructRNA *srna, v
|
||||||
|
} \
|
||||||
|
Py_DECREF(item); \
|
||||||
|
} \
|
||||||
|
+ else { \
|
||||||
|
+ PyErr_Clear(); \
|
||||||
|
+ } \
|
||||||
|
} /* intentionally allow else here */
|
||||||
|
|
||||||
|
if (false) {} /* needed for macro */
|
||||||
|
--
|
||||||
|
2.20.1
|
||||||
|
|
Loading…
Reference in New Issue