From: Ricardo Wurmus <rekado@elephly.net>
To: Eric Bavier <ericbavier@openmailbox.org>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: [PATCH] Add Blender
Date: Sun, 28 Feb 2016 14:57:45 +0100 [thread overview]
Message-ID: <87twktc4yu.fsf@elephly.net> (raw)
In-Reply-To: <87612xpf02.fsf@elephly.net>
[-- Attachment #1: Type: text/plain, Size: 2033 bytes --]
Ricardo Wurmus <rekado@elephly.net> writes:
> Ricardo Wurmus <rekado@elephly.net> writes:
>
>> Eric Bavier <ericbavier@openmailbox.org> 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
[-- Attachment #2: 0001-gnu-Add-Blender.patch --]
[-- Type: text/x-patch, Size: 4805 bytes --]
From 07412eca49e8c0238ffce93097db0adffce13556 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
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 <ludo@gnu.org>
;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
+;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; 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
next prev parent reply other threads:[~2016-02-28 13:57 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-20 20:46 [PATCH] Add Blender Ricardo Wurmus
2015-09-21 23:45 ` Eric Bavier
2015-09-23 6:45 ` Ricardo Wurmus
2015-09-23 10:17 ` Andreas Enge
2015-09-26 12:00 ` Ricardo Wurmus
2016-02-28 13:57 ` Ricardo Wurmus [this message]
2016-02-29 15:39 ` d.4.n.1
2016-04-25 19:21 ` Danny Milosavljevic
2016-04-25 21:43 ` Ludovic Courtès
2016-04-26 8:59 ` Danny Milosavljevic
2016-04-27 12:18 ` Ludovic Courtès
2015-09-26 12:47 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87twktc4yu.fsf@elephly.net \
--to=rekado@elephly.net \
--cc=ericbavier@openmailbox.org \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).