;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2018 Alex Kost <alezost@gmail.com>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2019 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2019, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2019 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages algebra)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages datastructures)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages jemalloc)
+ #:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages plotutils)
#:use-module (gnu packages pth)
#:use-module (gnu packages pulseaudio) ; libsndfile, libsamplerate
#:use-module (gnu packages python)
#:use-module (guix packages)
#:use-module (guix utils))
+(define-public fox
+ (package
+ (name "fox")
+ (version "1.6.57")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://fox-toolkit.org/ftp/fox-" version ".tar.gz"))
+ (sha256
+ (base32 "08w98m6wjadraw1pi13igzagly4b2nfa57kdqdnkjfhgkvg1bvv5"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "configure"
+ (("-I/usr/include/freetype2")
+ (string-append "-I"
+ (string-append
+ (assoc-ref %build-inputs "freetype")
+ "/include/freetype2"))))
+ #t)))))
+ (native-inputs
+ `(("doxygen" ,doxygen)))
+ (inputs
+ `(("bzip2" ,lbzip2)
+ ("freetype" ,freetype)
+ ("gl" ,mesa)
+ ("glu" ,glu)
+ ("jpeg" ,libjpeg-turbo)
+ ("png" ,libpng)
+ ("tiff" ,libtiff)
+ ("x11" ,libx11)
+ ("xcursor" ,libxcursor)
+ ("xext" ,libxext)
+ ("xfixes" ,libxfixes)
+ ("xft" ,libxft)
+ ("xinput" ,libxi)
+ ("xrandr" ,libxrandr)
+ ("xrender" ,libxrender)
+ ("xshm" ,libxshmfence)
+ ("zlib" ,zlib)))
+ (synopsis "Widget Toolkit for building GUI")
+ (description"FOX (Free Objects for X) is a C++ based Toolkit for developing
+Graphical User Interfaces easily and effectively. It offers a wide, and
+growing, collection of Controls, and provides state of the art facilities such
+as drag and drop, selection, as well as OpenGL widgets for 3D graphical
+manipulation. FOX also implements icons, images, and user-convenience features
+such as status line help, and tooltips. Tooltips may even be used for 3D
+objects!")
+ (home-page "http://www.fox-toolkit.org")
+ (license license:lgpl2.1+)))
+
+(define-public autotrace
+ (let ((commit "travis-20190624.59")
+ (version-base "0.40.0"))
+ (package
+ (name "autotrace")
+ (version (string-append version-base "-"
+ (if (string-prefix? "travis-" commit)
+ (string-drop commit 7)
+ commit)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/autotrace/autotrace")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0mk4yavy42dj0pszr1ggnggpvmzs4ds46caa9wr55cqsypn7bq6s"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ ;; See: https://github.com/autotrace/autotrace/issues/27.
+ (add-after 'unpack 'include-spline.h-header
+ (lambda _
+ (substitute* "Makefile.am"
+ ((".*src/types.h.*" all)
+ (string-append all "\t\tsrc/spline.h \\\n")))
+ #t))
+ ;; See: https://github.com/autotrace/autotrace/issues/26.
+ (replace 'check
+ (lambda _
+ (invoke "sh" "tests/runtests.sh"))))))
+ (native-inputs
+ `(("which" ,which)
+ ("pkg-config" ,pkg-config)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("intltool" ,intltool)
+ ("libtool" ,libtool)
+ ("gettext" ,gettext-minimal)))
+ (inputs
+ `(("glib" ,glib)
+ ("libjpeg" ,libjpeg-turbo)
+ ("libpng" ,libpng)
+ ("imagemagick" ,imagemagick)
+ ("pstoedit" ,pstoedit)))
+ (home-page "https://github.com/autotrace/autotrace")
+ (synopsis "Bitmap to vector graphics converter")
+ (description "AutoTrace is a utility for converting bitmap into vector
+graphics. It can trace outlines and midlines, effect color reduction or
+despeckling and has support for many input and output formats. It can be used
+with the @command{autotrace} utility or as a C library, @code{libautotrace}.")
+ (license (list license:gpl2+ ;for the utility itself
+ license:lgpl2.1+))))) ;for use as a library
+
(define-public blender
(package
(name "blender")
- (version "2.82a")
+ (version "2.83.3")
(source (origin
(method url-fetch)
(uri (string-append "https://download.blender.org/source/"
"blender-" version ".tar.xz"))
(sha256
(base32
- "18zbdgas6qf2kmvvlimxgnq7y9kj7hdxcgixrs6fj50x40q01q2d"))))
+ "18m27abp4j3xv48dr6ddr2mqcvx2vkjffr487z90059yv9k0yh2p"))))
(build-system cmake-build-system)
(arguments
(let ((python-version (version-major+minor (package-version python))))
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/assimp/assimp.git")
+ (url "https://github.com/assimp/assimp")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(define-public ilmbase
(package
(name "ilmbase")
- (version "2.4.1")
+ (version "2.5.2")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name "ilmbase" version))
(sha256
(base32
- "020gyl8zv83ag6gbcchmqiyx9rh2jca7j8n52zx1gk4rck7kwc01"))
- (patches (search-patches "ilmbase-fix-tests.patch"
- "ilmbase-openexr-pkg-config.patch"))))
+ "1vf8bqld2bpcdi99jbr043y6vp01cp3fvbiasrn66xn91mf6imbn"))
+ (patches (search-patches "ilmbase-fix-tests.patch"))))
(build-system cmake-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
exception-handling library.")
(license license:bsd-3)))
+(define-public lib2geom
+ ;; Use the latest master commit, as the 1.0 release suffer build problems.
+ (let ((revision "2")
+ (commit "f98256d2a923955af74b8cff3d456f0df1ee4b59"))
+ (package
+ (name "lib2geom")
+ (version (git-version "1.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/inkscape/lib2geom.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0w6ijaai8i80d0f35c0shgdspqlsdhw3cvz106k1gm7bmnz1wzpq"))
+ (patches
+ ;; Patches submitted to upstream (see:
+ ;; https://gitlab.com/inkscape/lib2geom/merge_requests/17,
+ ;; https://gitlab.com/inkscape/lib2geom/-/merge_requests/32).
+ (search-patches "lib2geom-enable-assertions.patch"
+ "lib2geom-fix-tests.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Fix py2geom module initialization (see:
+ ;; https://gitlab.com/inkscape/lib2geom/merge_requests/18).
+ (substitute* "src/py2geom/__init__.py"
+ (("_py2geom") "py2geom._py2geom"))
+ #t))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:imported-modules ((guix build python-build-system)
+ ,@%cmake-build-system-modules)
+ #:configure-flags '("-D2GEOM_BUILD_SHARED=ON"
+ "-D2GEOM_BOOST_PYTHON=ON"
+ ;; Compiling the Cython bindings fail (see:
+ ;; https://gitlab.com/inkscape/lib2geom/issues/21).
+ "-D2GEOM_CYTHON_BINDINGS=OFF")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-python-lib-install-path
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((python-version (@ (guix build python-build-system)
+ python-version))
+ (python-maj-min-version (python-version
+ (assoc-ref inputs "python")))
+ (site-package (string-append
+ (assoc-ref outputs "out")
+ "/lib/python" python-maj-min-version
+ "/site-packages")))
+ (substitute* '("src/cython/CMakeLists.txt"
+ "src/py2geom/CMakeLists.txt")
+ (("PYTHON_LIB_INSTALL \"[^\"]*\"")
+ (format #f "PYTHON_LIB_INSTALL ~s" site-package))))
+ #t)))))
+ (native-inputs `(("python" ,python-wrapper)
+ ("googletest" ,googletest)
+ ("pkg-config" ,pkg-config)))
+ (inputs `(("cairo" ,cairo)
+ ("pycairo" ,python-pycairo)
+ ("double-conversion" ,double-conversion)
+ ("glib" ,glib)
+ ("gsl" ,gsl)))
+ (propagated-inputs
+ `(("boost" ,boost))) ;referred to in 2geom/pathvector.h.
+ (home-page "https://gitlab.com/inkscape/lib2geom/")
+ (synopsis "C++ 2D graphics library")
+ (description "2geom is a C++ library of mathematics for paths, curves,
+and other geometric calculations. Designed for vector graphics, it tackles
+Bézier curves, conic sections, paths, intersections, transformations, and
+basic geometries.")
+ ;; Because the library is linked with the GNU Scientific Library
+ ;; (GPLv3+), the combined work must be licensed as GPLv3+ (see:
+ ;; https://gitlab.com/inkscape/inkscape/issues/784).
+ (license license:gpl3+))))
+
+(define-public pstoedit
+ (package
+ (name "pstoedit")
+ (version "3.75")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/pstoedit/pstoedit/"
+ version "/pstoedit-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1kv46g2wsvsvcngkavxl5gnw3l6g5xqnh4kmyx4b39a01d8xiddp"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("ghostscript" ,ghostscript)
+ ("imagemagick" ,imagemagick)
+ ("libplot" ,plotutils)
+ ("libjpeg" ,libjpeg-turbo)
+ ("zlib" ,zlib))) ;else libp2edrvmagick++.so fails to link
+ (home-page "http://www.pstoedit.net/")
+ (synopsis "Converter for PostScript and PDF graphics")
+ (description "The @code{pstoedit} utility allows translating graphics
+in the PostScript or PDF (Portable Document Format) formats to various
+other vector formats such as:
+@itemize
+@item Tgif (.obj)
+@item gnuplot
+@item xfig (.fig)
+@item Flattened PostScript
+@item DXF, a CAD (Computed-Aided Design) exchange format
+@item PIC (for troff/groff)
+@item MetaPost (for usage with TeX/LaTeX)
+@item LaTeX2e picture
+@item GNU Metafile (for use with plotutils/libplot)
+@item Any format supported by ImageMagick
+@end itemize")
+ (license license:gpl2+)))
+
(define-public ogre
(package
(name "ogre")
- (version "1.10.11")
+ (version "1.12.5")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/OGRECave/ogre.git")
- (commit (string-append "v" version))))
+ (url "https://github.com/OGRECave/ogre")
+ (commit (string-append "v" version))
+ (recursive? #t))) ;for Dear ImGui submodule
(file-name (git-file-name name version))
(sha256
- (base32
- "072rzw9mxymbiypgkrbkk9h10rgly6gczik4dlmssk6xkpqckaqr"))))
+ (base32 "1sx0jsw4kmb4ycf62bgx3ygwv8k1cgjx52y47d7dk07z6gk6wpyj"))))
(build-system cmake-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'configure 'pre-configure
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "Tests/CMakeLists.txt"
- (("URL(.*)$")
- (string-append "URL " (assoc-ref inputs "googletest-source"))))
+ ;; CMakeLists.txt forces CMAKE_INSTALL_RPATH value. As
+ ;; a consequence, we cannot suggest ours in configure flags. Fix
+ ;; it.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "CMakeLists.txt"
+ (("set\\(CMAKE_INSTALL_RPATH .*") ""))
#t)))
#:configure-flags
- (list "-DOGRE_BUILD_TESTS=TRUE"
- (string-append "-DCMAKE_INSTALL_RPATH="
- (assoc-ref %outputs "out") "/lib:"
- (assoc-ref %outputs "out") "/lib/OGRE:"
- (assoc-ref %build-inputs "googletest") "/lib")
- "-DOGRE_INSTALL_DOCS=TRUE"
- "-DOGRE_INSTALL_SAMPLES=TRUE"
- "-DOGRE_INSTALL_SAMPLES_SOURCE=TRUE")))
+ (let* ((out (assoc-ref %outputs "out"))
+ (runpath
+ (string-join (list (string-append out "/lib")
+ (string-append out "/lib/OGRE"))
+ ";")))
+ (list (string-append "-DCMAKE_INSTALL_RPATH=" runpath)
+ "-DOGRE_BUILD_DEPENDENCIES=OFF"
+ "-DOGRE_BUILD_TESTS=TRUE"
+ "-DOGRE_INSTALL_DOCS=TRUE"
+ "-DOGRE_INSTALL_SAMPLES=TRUE"
+ "-DOGRE_INSTALL_SAMPLES_SOURCE=TRUE"))))
(native-inputs
`(("boost" ,boost)
("doxygen" ,doxygen)
- ("googletest-source" ,(package-source googletest))
+ ("googletest" ,googletest-1.8)
("pkg-config" ,pkg-config)))
(inputs
`(("font-dejavu" ,font-dejavu)
("freeimage" ,freeimage)
("freetype" ,freetype)
("glu" ,glu)
- ("googletest" ,googletest)
- ("sdl2" ,sdl2)
("libxaw" ,libxaw)
("libxrandr" ,libxrandr)
+ ("pugixml" ,pugixml)
+ ("sdl2" ,sdl2)
("tinyxml" ,tinyxml)
("zziplib" ,zziplib)))
(synopsis "Scene-oriented, flexible 3D engine written in C++")
flexible 3D engine written in C++ designed to make it easier and more intuitive
for developers to produce applications utilising hardware-accelerated 3D
graphics.")
- (home-page "http://www.ogre3d.org/")
+ (home-page "https://www.ogre3d.org/")
(license license:expat)))
(define-public openexr
(lambda _
(chdir "OpenEXR")
#t))
- (add-before 'check 'increase-test-timeout
+ (add-after 'change-directory 'increase-test-timeout
(lambda _
;; On armhf-linux, we need to override the CTest default
;; timeout of 1500 seconds for the OpenEXR.IlmImf test.
- (setenv "CTEST_TEST_TIMEOUT" "2000")
+ (substitute* "IlmImfTest/CMakeLists.txt"
+ (("add_test\\(NAME OpenEXR\\.IlmImf.*" all)
+ (string-append
+ all
+ "set_tests_properties(OpenEXR.IlmImf PROPERTIES TIMEOUT 2000)")))
#t))
,@(if (not (target-64bit?))
`((add-after 'change-directory 'disable-broken-test
;; https://github.com/openexr/openexr/issues/67#issuecomment-21169748
(lambda _
(substitute* "IlmImfTest/main.cpp"
- ((".*testOptimizedInterleavePatterns.*") "")
- ;; This test is broken in 2.4.0 and will be fixed in a later
- ;; release: <https://github.com/openexr/openexr/issues/571>.
- ((".*testLargeDataWindowOffsets.*") ""))
+ ((".*testOptimizedInterleavePatterns.*") ""))
#t)))
'()))))
(native-inputs
(define-public openimageio
(package
(name "openimageio")
- (version "1.8.17")
+ (version "2.0.13")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/OpenImageIO/oiio.git")
+ (url "https://github.com/OpenImageIO/oiio")
(commit (string-append "Release-" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0zq34szprgkrrayg5sl3whrsx2l6lr8nw4hdrnwv2qhn70jbi2w2"))))
+ "0czcls82v71wkw1syib16ncg7463hx0py0xclycsiv4w6i3wlkzz"))))
(build-system cmake-build-system)
;; FIXME: To run all tests successfully, test image sets from multiple
;; third party sources have to be present. For details see
("giflib" ,giflib)
("openexr" ,openexr)
("ilmbase" ,ilmbase)
- ("python" ,python-2)
+ ("python" ,python-wrapper)
+ ("pybind11" ,pybind11)
+ ("robin-map" ,robin-map)
("zlib" ,zlib)))
(synopsis "C++ library for reading and writing images")
(description
related classes, utilities, and applications. There is a particular emphasis
on formats and functionality used in professional, large-scale animation and
visual effects work for film.")
- (home-page "http://www.openimageio.org")
+ (home-page "https://www.openimageio.org")
(license license:bsd-3)))
-;; This older version of OpenImageIO is required for Blender 2.79.
-(define-public openimageio-1.7
- (package
- (inherit openimageio)
- (name "openimageio")
- (version "1.7.19")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/OpenImageIO/oiio.git")
- (commit (string-append "Release-" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0yxxy43l3lllw7maqg42dlkgqms2d4772sxzxk7kmxg4lnhsvndc"))))))
-
(define-public openscenegraph
(package
(name "openscenegraph")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/wdas/brdf.git")
+ (url "https://github.com/wdas/brdf")
(commit commit)))
(sha256
(base32
(define-public python-pastel
(package
(name "python-pastel")
- (version "0.1.1")
+ (version "0.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pastel" version))
(sha256
(base32
- "1qxcrcl8pzh66l8s6hym153mijdhwna0afcsmgca0bj4n80ijfxz"))))
+ "0dnaw44ss10i10z4ksy0xljknvjap7rb7g0b8p6yzm5x4g2my5a6"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
("libxi" ,libxi)
("zlib" ,zlib)
("glfw" ,glfw)))
- (home-page "http://graphics.pixar.com/opensubdiv/")
+ (home-page "https://graphics.pixar.com/opensubdiv/")
(synopsis "High performance subdivision surface evaluation")
(description "OpenSubdiv is a set of libraries that implement high
performance subdivision surface (subdiv) evaluation on massively parallel CPU
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/floriankirsch/OpenCSG.git")
+ (url "https://github.com/floriankirsch/OpenCSG")
(commit (string-append "opencsg-"
(string-map dot-to-dash version)
"-release"))))
standard graphics library for 3D visualization and visual simulation
software in the scientific and engineering community.")
(license license:bsd-3))))
+
+(define-public superfamiconv
+ (package
+ (name "superfamiconv")
+ (version "0.8.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Optiroc/SuperFamiconv")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0848szv6a2b8wdganh6mw5i8vn8cqvn1kbwzx7mb9wlrf5wzqn37"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((outdir (assoc-ref outputs "out"))
+ (bindir (string-append outdir "/bin")))
+ (install-file "bin/superfamiconv" bindir)
+ #t))))))
+ (home-page "https://github.com/Optiroc/SuperFamiconv")
+ (synopsis "Tile graphics converter supporting SNES, Game Boy Color
+and PC Engine formats")
+ (description "SuperFamiconv is a converter for tiled graphics, supporting
+the graphics formats of the SNES, Game Boy Color and PC Engine game consoles.
+Automated palette selection is supported.")
+ (license license:expat)))