guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Add Blender


From: Ricardo Wurmus
Subject: Re: [PATCH] Add Blender
Date: Sun, 28 Feb 2016 14:57:45 +0100
User-agent: mu4e 0.9.13; emacs 24.5.1

Ricardo Wurmus <address@hidden> writes:

> Ricardo Wurmus <address@hidden> writes:
>
>> Eric Bavier <address@hidden> writes:
>
>>>> +         (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"
>>>> +                                   ":" (getenv "CPATH")))
>>>
>>> Is the "half.h" header in OpenEXR, or in blender?  If the latter, would
>>> it make more sense to instead patch the include directive to include
>>> the OpenEXR path?
>>
>> “half.h” is provided by “ilmbase”.  The include is in Blender, in this
>> file:
>>
>>     blender-2.75a/source/blender/imbuf/intern/openexr/openexr_api.cpp
>>
>> I could patch this instead, replacing
>>
>>     #include <half.h>
>>
>> with
>>
>>     #include <OpenEXR/half.h>
>>
>> I’ll fix this, recompile and if there are no further objections push
>> upon success.
>
> I tried this, but there are more includes that need to be patched and
> even that doesn’t help as the includes in “openexr” headers are still
> broken, as the actual directory containing the headers is not in the
> CPATH.
>
> As this seems to be a problem with the “openexr”/“ilmbase” packages I’d
> rather keep the originally proposed fix, i.e. adding the OpenEXR
> directory to the CPATH.
>
> If that’s okay, I’d push the “blender” package without further
> modifications.

Attached is the latest version of the patch.  The CPATH hack is still
required.  I also had to disable the tests as the gigabytes of test
files that would be required to run them are not included in the release
tarballs.

~~ Ricardo

>From 07412eca49e8c0238ffce93097db0adffce13556 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Thu, 3 Sep 2015 14:17:34 +0200
Subject: [PATCH] gnu: Add Blender.

* gnu/packages/graphics.scm (blender): New variable.
---
 gnu/packages/graphics.scm | 85 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 85 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index e6e75aa..4a9fd5d 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Ludovic Courtès <address@hidden>
 ;;; Copyright © 2015 Tomáš Čech <address@hidden>
+;;; Copyright © 2016 Ricardo Wurmus <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +26,8 @@
   #:use-module (guix build-system cmake)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
+  #:use-module (gnu packages algebra)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
@@ -32,13 +35,95 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)  ;libsndfile, libsamplerate
   #:use-module (gnu packages compression)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages gl)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages jemalloc)
+  #:use-module (gnu packages photo)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages xorg))
 
+(define-public blender
+  (package
+    (name "blender")
+    (version "2.76b")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://download.blender.org/source/";
+                                  "blender-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0pb0mlj4vj0iir528ifqq67nsh3ca1942933d9cwlbpcja2jm1dx"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(;; 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_SYSTEM_OPENJPEG=ON")
+       #: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-wrapper)
+       ("zlib" ,zlib)))
+    (home-page "http://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.")
+    (license license:gpl2+)))
+
 (define-public cgal
   (package
     (name "cgal")
-- 
2.6.3


reply via email to

[Prev in Thread] Current Thread [Next in Thread]