summaryrefslogtreecommitdiff
path: root/gnu/packages/image-processing.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/image-processing.scm')
-rw-r--r--gnu/packages/image-processing.scm433
1 files changed, 414 insertions, 19 deletions
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index a8f40c4454..70c820e76b 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -21,6 +21,7 @@
;;; Copyright © 2021 Ivan Gankevich <[email protected]>
;;; Copyright © 2022 Maxim Cournoyer <[email protected]>
;;; Copyright © 2022 Tomasz Jeneralczyk <[email protected]>
+;;; Copyright © 2022 Paul A. Patience <[email protected]>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -54,11 +55,14 @@
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages cpp)
#:use-module (gnu packages curl)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages game-development)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages geo)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gimp)
@@ -74,18 +78,24 @@
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages linux)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages mpi)
#: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 pretty-print)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-check)
+ #:use-module (gnu packages python-science)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
+ #:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tbb)
+ #:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
@@ -99,26 +109,29 @@
(define-public bart
(package
(name "bart")
- (version "0.7.00")
+ (version "0.8.00")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mrirecon/bart")
- (commit "d1b0e576c3f759089915565d5bf57832acf7b03e")))
+ (commit "eacc67b95cf128487ecc48f0e6541ea4dca08818")))
(file-name (git-file-name name version))
(sha256
- (base32 "159rj3agr9pb9lg38b56rnw3d8wcbkmb2n718z26zpy4c6a6d9rn"))))
+ (base32 "05lcf7c3g7ms5h82bw1mi4kzkdv5wpqi1zrfhqfkgbcpd3irj6aq"))))
(build-system gnu-build-system)
(arguments
(list
#:test-target "utest"
#:make-flags #~(list
(string-append "PREFIX=" #$output)
+ "PARALLEL=1"
+ "PARALLEL_NJOBS=1"
"OPENBLAS=1"
"SCALAPACK=1"
(string-append "BLAS_BASE=" #$(this-package-input "openblas"))
(string-append "FFTW_BASE=" #$(this-package-input "fftw")))
+ #:parallel-build? #false ;leads to non-deterministic output
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
@@ -196,7 +209,9 @@ licences similar to the Modified BSD licence."))))
(base32
"0qpcd3n26q52dpyibm11f5l6cgscdr54p2jish39gc3p1f5h3ws1"))
(patches (search-patches "mia-fix-boost-headers.patch"
- "mia-vtk9.patch"))))
+ "mia-vtk9.patch"
+ "mia-vtk92.patch"
+ "mia-vtk-version.patch"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
@@ -309,7 +324,7 @@ many popular formats.")
(define-public vtk
(package
(name "vtk")
- (version "9.0.1")
+ (version "9.2.2")
(source (origin
(method url-fetch)
(uri (string-append "https://vtk.org/files/release/"
@@ -317,9 +332,7 @@ many popular formats.")
"/VTK-" version ".tar.gz"))
(sha256
(base32
- "1ir2lq9i45ls374lcmjzw0nrm5l5hnm1w47lg8g8d0n2j7hsaf8v"))
- (patches
- (search-patches "vtk-fix-freetypetools-build-failure.patch"))
+ "0x8h2bwxq2870067j7wqd0qym87pa3inkbri93zrdb0zwwmhlnqw"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -368,14 +381,6 @@ many popular formats.")
"-DVTK_WRAP_PYTHON=ON"
"-DVTK_PYTHON_VERSION:STRING=3"
)
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-sources
- (lambda _
- (substitute* "Common/Core/vtkFloatingPointExceptions.cxx"
- (("<fenv.h>") "<cfenv>"))
- (substitute* "Common/Core/CMakeLists.txt"
- (("fenv.h") "cfenv")))))
#:tests? #f)) ;XXX: test data not included
(inputs
(list double-conversion
@@ -623,7 +628,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
(sha256
(base32 "0ga0l4ranp1834gxgp487ll1amvmssa02l2nk5ja5w0rx4d8hh26"))))))
(inputs
- (list ffmpeg
+ (list ffmpeg-4
gtk+
gtkglext
hdf5
@@ -671,7 +676,7 @@ things like:
(define-public vips
(package
(name "vips")
- (version "8.10.6")
+ (version "8.13.1")
(source
(origin
(method url-fetch)
@@ -679,7 +684,7 @@ things like:
"https://github.com/libvips/libvips/releases/download/v"
version "/vips-" version ".tar.gz"))
(sha256
- (base32 "0vjsh3i0861f6h9as3bch956cidz824zz499pvhjs3lfjn6hhs14"))))
+ (base32 "00kp3439jcqv9l2gcjg88xzvlq8clv54z1m3x66i3chvarz7ndxd"))))
(build-system gnu-build-system)
(native-inputs
(list gobject-introspection pkg-config))
@@ -868,6 +873,368 @@ create a set of formula connecting your objects together, and on a change nip2
recalculates.")
(license license:gpl2+)))
+;; This package bundles and extends VTK. It also reuses the VTK build system
+;; to some degree. Sadly, it does not seem to be possible to build with an
+;; external VTK, despite the CMake option PARAVIEW_USE_EXTERNAL_VTK.
+(define-public paraview-5.9
+ (package
+ (name "paraview")
+ (version "5.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.paraview.org/files/v"
+ (version-major+minor version)
+ "/ParaView-v" version ".tar.xz"))
+ (sha256
+ (base32 "13aczmfshzia324h9r2m675yyrklz2308rf98n444ppmzfv6qj0d"))))
+ (build-system qt-build-system)
+ (arguments
+ (list
+ #:build-type "Release" ;Build without debug symbols to save space
+ #:configure-flags
+ '(list "-DPARAVIEW_BUILD_WITH_EXTERNAL=ON"
+ "-DPARAVIEW_BUILD_SHARED_LIBS=ON"
+ "-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=OFF"
+ "-DPARAVIEW_USE_PYTHON=ON"
+ "-DPARAVIEW_ENABLE_FFMPEG=ON"
+ "-DPARAVIEW_ENABLE_GDAL=ON"
+ "-DPARAVIEW_ENABLE_WEB=OFF"
+
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_glew=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_lz4=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_lzma=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_theora=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_utf8=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON"
+
+ "-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst=OFF"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_cgns=OFF"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk=OFF"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_fmt=OFF"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_ioss=OFF")))
+ (inputs
+ (list ;; XXX: We can't simply #:use-module due to a cycle somewhere.
+ (module-ref
+ (resolve-interface '(gnu packages engineering))
+ 'cgns)
+ cli11
+ double-conversion
+ eigen
+ expat
+ ffmpeg-4
+ freetype
+ gdal
+ gl2ps
+ glew
+ hdf5
+ jsoncpp
+ libharu
+ libjpeg-turbo
+ libpng
+ libtheora
+ libtiff
+ libxml2
+ lz4
+ mesa
+ netcdf
+ protobuf
+ pugixml
+ python
+ qtbase-5
+ qtsvg-5
+ qttools-5
+ qtxmlpatterns
+ utfcpp
+ zlib))
+ (home-page "https://www.paraview.org/")
+ (synopsis "Data analysis and visualization application")
+ (description "ParaView is a data analysis and visualization application.
+Users can quickly build visualizations to analyze their data using qualitative
+and quantitative techniques. The data exploration can be done interactively
+in 3D or programmatically using ParaView’s batch processing capabilities.")
+ (license license:bsd-3)))
+
+(define-public paraview
+ (package
+ (name "paraview")
+ (version "5.11.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.kitware.com/paraview/paraview.git")
+ (commit (string-append "v" version))
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0qifzsbgg8f7zvg5a4934nql6nv5b6sm1f59bylyc6v5bqd0myas"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; TODO: Also remove unused bundled libraries and plugins?
+ #~(begin
+ ;; Remove bundled ParaView libraries which are available in Guix
+ ;; or undesired.
+ (for-each (lambda (dir)
+ (delete-file-recursively
+ (string-append "ThirdParty/" dir "/vtk"
+ (string-downcase dir))))
+ '(;;"CosmoHaloFinder"
+ ;;"IceT"
+ "NvPipe" ; Don't want NvPipe support
+ ;;"QtTesting"
+ ;;"cinema"
+ ;;"cinemasci"
+ "protobuf"))
+ ;; Remove undesired ParaView plugins.
+ (delete-file-recursively "Plugins/pvNVIDIAIndeX")
+ ;; Remove bundled VTK libraries which are available in Guix.
+ (for-each (lambda (dir)
+ (delete-file-recursively
+ (string-append "VTK/ThirdParty/" dir "/vtk" dir)))
+ '(;;"cgns"
+ "cli11"
+ ;;"diy2"
+ "doubleconversion"
+ "eigen"
+ ;;"exodusII"
+ "expat"
+ ;;"exprtk"
+ ;;"fides"
+ "fmt"
+ "freetype"
+ "gl2ps"
+ "glew"
+ ;;"h5part"
+ "hdf5"
+ ;;"ioss"
+ "jpeg"
+ "jsoncpp"
+ ;;"kissfft"
+ ;;"libharu" ; Requires some PRs applied to 2.3.0
+ "libproj"
+ "libxml2"
+ ;;"loguru"
+ "lz4"
+ "lzma"
+ "mpi4py"
+ "netcdf"
+ ;;"nlohmannjson" ; ParFlow build fails even with bundled
+ "ogg"
+ ;;"pegtl"
+ "png"
+ "pugixml"
+ "sqlite"
+ "theora"
+ "tiff"
+ "utf8"
+ ;;"verdict"
+ ;;"vpic"
+ ;;"vtkm"
+ ;;"xdmf2"
+ ;;"xdmf3"
+ ;;"zfp"
+ "zlib"))))))
+ (build-system qt-build-system)
+ (arguments
+ (list
+ #:build-type "Release" ; 542 MiB in release mode
+ #:tests? #f ; Downloads test data
+ #:configure-flags
+ #~(let ((doc (string-append #$output "/share/doc/" #$name "-" #$version)))
+ (list
+ (string-append "-DCMAKE_INSTALL_DOCDIR=" doc) ; For paraview.qch
+
+ ;; ParaView build options
+ "-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=ON"
+ (string-append "-DPARAVIEW_GENERATED_DOCUMENTATION_OUTPUT_DIRECTORY=" doc)
+
+ ;; ParaView capability options
+ ;;"-DPARAVIEW_USE_EXTERNAL_VTK=ON" ; Unsupported by ParaView
+ "-DPARAVIEW_USE_MPI=ON"
+ "-DPARAVIEW_USE_PYTHON=ON"
+ "-DPARAVIEW_USE_QTWEBENGINE=ON"
+
+ ;; ParaView features
+ ;;
+ ;; Enable those that are disabled by default.
+ ;; Commented means the dependencies are missing from Guix
+ ;; (or are otherwise described).
+ ;;"-DPARAVIEW_ENABLE_ADIOS2=ON"
+ ;;"-DPARAVIEW_ENABLE_COSMOTOOLS=ON"
+ ;;"-DPARAVIEW_ENABLE_CATALYST=ON"
+ "-DPARAVIEW_ENABLE_FFMPEG=ON"
+ ;;"-DPARAVIEW_ENABLE_FIDES=ON"
+ "-DPARAVIEW_ENABLE_GDAL=ON"
+ ;;"-DPARAVIEW_ENABLE_LAS=ON"
+ ;;"-DPARAVIEW_ENABLE_LOOKINGGLASS=ON" ; Downloads dependency
+ ;;"-DPARAVIEW_ENABLE_MOMENTINVARIANTS=ON" ; Downloads dependency
+ "-DPARAVIEW_ENABLE_MOTIONFX=ON"
+ ;;"-DPARAVIEW_ENABLE_OPENTURNS=ON"
+ ;;"-DPARAVIEW_ENABLE_OPENVDB=ON" ; Dependency not found
+ ;;"-DPARAVIEW_ENABLE_PDAL=ON"
+ ;;"-DPARAVIEW_ENABLE_RAYTRACING=ON"
+ "-DPARAVIEW_ENABLE_VISITBRIDGE=ON"
+ "-DPARAVIEW_ENABLE_XDMF3=ON"
+
+ ;; ParaView miscellaneous options
+ ;;
+ ;; Without -DPARAVIEW_DATA_EXCLUDE_FROM_ALL=OFF, test data is
+ ;; downloaded even with tests disabled.
+ "-DPARAVIEW_VERSIONED_INSTALL=OFF"
+ "-DPARAVIEW_DATA_EXCLUDE_FROM_ALL=OFF"
+
+ ;; ParaView plugins
+ ;;
+ ;; Enable those that are disabled by default.
+ ;; Commented means the dependencies are missing from Guix
+ ;; (or are otherwise described).
+ ;;"-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderPixie=ON"
+ ;;"-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderStaging=ON"
+ "-DPARAVIEW_PLUGIN_ENABLE_CAVEInteraction=ON"
+ ;;"-DPARAVIEW_PLUGIN_ENABLE_CDIReader=ON"
+ "-DPARAVIEW_PLUGIN_ENABLE_GeographicalMap=ON"
+ "-DPARAVIEW_PLUGIN_ENABLE_GmshIO=ON"
+ "-DPARAVIEW_PLUGIN_ENABLE_InSituExodus=ON"
+ ;;"-DPARAVIEW_PLUGIN_ENABLE_LookingGlass=ON"
+ "-DPARAVIEW_PLUGIN_ENABLE_NetCDFTimeAnnotationPlugin=ON"
+ ;;"-DPARAVIEW_PLUGIN_ENABLE_ParFlow=ON" ; Build fails
+ ;;"-DPARAVIEW_PLUGIN_ENABLE_PythonQtPlugin=ON"
+ "-DPARAVIEW_PLUGIN_ENABLE_SpaceMouseInteractor=ON"
+ ;;"-DPARAVIEW_PLUGIN_ENABLE_VDFReaderPlugin=ON"
+ ;;"-DPARAVIEW_PLUGIN_ENABLE_XRInterface=ON" ; Build fails
+ ;;"-DPARAVIEW_PLUGIN_ENABLE_zSpace=ON"
+
+ ;; VTK options
+ "-DVTK_SMP_IMPLEMENTATION_TYPE=TBB"
+ "-DVTKm_ENABLE_MPI=ON"
+
+ ;; External libraries for ParaView and VTK
+ "-DVTK_MODULE_USE_EXTERNAL_ParaView_protobuf=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_cli11=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_fmt=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_glew=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_jsoncpp=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_libproj=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_lz4=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_lzma=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON"
+ ;;"-DVTK_MODULE_USE_EXTERNAL_VTK_nlohmannjson=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_ogg=ON"
+ ;;"-DVTK_MODULE_USE_EXTERNAL_VTK_pegtl=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_pugixml=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_sqlite=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_theora=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_utf8=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'set-paths 'hide-gfortran
+ (lambda _
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-join
+ (delete (string-append #$(this-package-native-input "gfortran")
+ "/include/c++")
+ (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
+ ":"))))
+ (replace 'install-license-files
+ (lambda _
+ (let ((src (string-append #$output "/share/licenses/ParaView"))
+ (dst (string-append #$output "/share/doc/"
+ #$name "-" #$version "/licenses")))
+ (copy-recursively src dst)
+ (delete-file-recursively (dirname src))))))))
+ (native-inputs
+ (list gfortran
+ ;; For the documentation
+ doxygen
+ graphviz
+ perl
+ python-sphinx))
+ (inputs
+ (list boost
+ cli11
+ curl
+ double-conversion
+ eigen
+ expat
+ ffmpeg
+ fmt
+ freetype
+ gdal
+ gl2ps
+ glew
+ gmsh
+ hdf5
+ ;;json-modern-cxx ;For ParFlow; build fails
+ jsoncpp
+ libjpeg-turbo
+ libogg
+ libpng
+ libtheora
+ libtiff
+ libxcursor
+ libxml2
+ libxt
+ lz4
+ lzip
+ mesa
+ netcdf
+ openmpi
+ ;;openvdb ;For OpenVDB; dependency not found
+ ;;openvr ;For XRInterface; build fails
+ ;;pegtl ;For VTK; build fails
+ proj
+ protobuf
+ pugixml
+ python-cftime
+ python-matplotlib
+ python-mpi4py
+ python-numpy
+ python-wrapper
+ qtbase-5
+ qtdeclarative-5
+ qtmultimedia-5
+ qtsvg-5
+ qttools-5
+ qtwebchannel-5
+ qtwebengine-5
+ qtx11extras
+ qtxmlpatterns
+ sdl2
+ sqlite
+ tbb
+ utfcpp
+ zlib))
+ (home-page "https://www.paraview.org/")
+ (synopsis "VTK-based, parallel data analyzer and visualizer")
+ (description "ParaView is a VTK-based, parallel data analyzer and
+visualizer which allows exploring data interactively in 3D or
+programmatically.")
+ (license license:bsd-3)))
+
(define-public vxl
(package
(name "vxl")
@@ -1381,3 +1748,31 @@ segmentation.")
"Image and video labeling tool supporting different shapes like
polygons, rectangles, circles, lines, points and VOC/COCO export.")
(license license:gpl3+)))
+
+(define-public charls
+ (package
+ (name "charls")
+ (version "2.3.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/team-charls/charls/")
+ (commit (string-append version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0g3f1rfimk30rqmi7ic4i5vfphyqbbpsyyhwqq1iss9wjwaz2vs5"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags '("-DCMAKE_BUILD_TYPE:STRING=Release"
+ "-DBUILD_SHARED_LIBS=On")))
+ (native-inputs (list git pkg-config))
+ (home-page "https://github.com/team-charls/charls")
+ (synopsis "Library for using JPEG-LS compliant images")
+ (description
+ "CharLS is a codec library that can be used to build applications that
+can handle JPEG-LS compliant images. In the application you are writing you
+can call the CharLS codec and pass it images (sometimes called raster bitmaps),
+ to have them encoded to JPEG-LS, or JPEG-LS streams, which CharLS will decode
+to images.")
+ (license license:bsd-3)))