Subject: [bug#47778] [PATCH]: Update FreeCAD to 0.19.1

From: Ekaitz Zarraga <[email-masked]>
Date: Wed, 14 Apr 2021 15:59:28 +0000

Hi,

This set of patches update freecad from unstable to the 0.19.1 release.

More information in this help-guix thread:

https://lists.gnu.org/archive/html/help-guix/2021-04/msg00118.html

Thanks!

From 48fc072af9b595c7e71f0f06d9963685e7d3a796 Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <[email-masked]>
Date: Wed, 14 Apr 2021 15:48:06 +0200
Subject: [PATCH 1/2] gnu: Add vtk-8.

gnu/packages/image-processing (vtk-8): New variable.
---
 gnu/packages/image-processing.scm | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index ce2242a658..16c9887741 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2021 Oleh Malyi <[email-masked]>
 ;;; Copyright © 2021 Felix Gruber <[email-masked]>
 ;;; Copyright © 2021 Andy Tai <[email-masked]>
+;;; Copyright © 2020 Ekaitz Zarraga <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -349,6 +350,22 @@ a suite of 3D interaction widgets, supports parallel processing, and
 integrates with various databases on GUI toolkits such as Qt and Tk.")
     (license license:bsd-3)))
 
+;; freecad needs an old version of VTK, because VTK's API changed from 8 to 9
+(define-public vtk-8
+  (package (inherit vtk)
+    (version "8.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://vtk.org/files/release/"
+                                  (version-major+minor version)
+                                  "/VTK-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1fspgp8k0myr6p2a6wkc21ldcswb4bvmb484m12mxgk1a9vxrhrl"))))
+    (inputs
+     `(("jsoncpp" ,jsoncpp-for-tensorflow)
+       ,@(alist-delete "jsoncpp" (package-inputs vtk))))))
+
 ;; itksnap needs an older variant of VTK.
 (define-public vtk-6
   (package (inherit vtk)
-- 
2.31.0

From 199116be8ece6f2aaff2f277ece2cdbfcc487c63 Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <[email-masked]>
Date: Wed, 14 Apr 2021 15:49:53 +0200
Subject: [PATCH 2/2] gnu: freecad: Update to 0.19.1

* gnu/packages/engineering.scm (freecad): Update to 0.19.1
[inputs]: Add new dependencies
---
 gnu/packages/engineering.scm | 217 +++++++++++++++++++----------------
 1 file changed, 117 insertions(+), 100 deletions(-)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index b5568b8563..4274a59f5f 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -17,7 +17,7 @@
 ;;; Copyright © 2020 Brice Waegeneire <[email-masked]>
 ;;; Copyright © 2020,2021 Vincent Legoll <[email-masked]>
 ;;; Copyright © 2020 Marius Bakke <[email-masked]>
-;;; Copyright © 2020 Ekaitz Zarraga <[email-masked]>
+;;; Copyright © 2020, 2021 Ekaitz Zarraga <[email-masked]>
 ;;; Copyright © 2020 B. Wilson <[email-masked]>
 ;;; Copyright © 2020, 2021 Vinicius Monego <[email-masked]>
 ;;; Copyright © 2020, 2021 Morgan Smith <[email-masked]>
@@ -112,6 +112,8 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages serialization)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tbb)
   #:use-module (gnu packages tcl)
@@ -122,6 +124,7 @@
   #:use-module (gnu packages web)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages xiph)
   #:use-module (gnu packages openkinect)
   #:use-module (gnu packages xorg))
 
@@ -2353,111 +2356,125 @@ full programmatic control over your models.")
 OpenSCAD code.  It supports syntax highlighting, indenting and refilling of
 comments.")))
 
+
 (define-public freecad
-  (let ((commit-ref "7616153b3c31ace006169cdc2fdafab484498858")
-        (revision "1"))
-    (package
-      (name "freecad")
-      (version (git-version "0.18.5" revision commit-ref))
-      (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/FreeCAD/FreeCAD")
-                 (commit commit-ref)))
-          (file-name (git-file-name name version))
-          (sha256
-            (base32
-              "16965yxnp2pq7nm8z3p0pjkzjdyq62vfrj8j3nk26bwc898czyn2"))))
-      (build-system qt-build-system)
-      (native-inputs
-       `(("doxygen" ,doxygen)
-         ("graphviz" ,graphviz)
-         ("qttools" ,qttools)
-         ("pkg-config" ,pkg-config)
-         ("python-pyside-2-tools" ,python-pyside-2-tools)
-         ("swig" ,swig)))
-      (inputs
-       `(("boost" ,boost)
-         ("coin3D" ,coin3D)
-         ("eigen" ,eigen)
-         ("freetype" ,freetype)
-         ("glew" ,glew)
-         ("hdf5" ,hdf5-1.10)
-         ("libarea" ,libarea)
-         ("libmedfile" ,libmedfile)
-         ("libspnav" ,libspnav)
-         ("libxi" ,libxi)
-         ("libxmu" ,libxmu)
-         ("openmpi" ,openmpi)
-         ("opencascade-occt" ,opencascade-occt)
-         ("python-matplotlib" ,python-matplotlib)
-         ("python-pyside-2" ,python-pyside-2)
-         ("python-shiboken-2" ,python-shiboken-2)
-         ("python-pivy" ,python-pivy)
-         ("python-wrapper" ,python-wrapper)
-         ("qtbase" ,qtbase)
-         ("qtsvg" ,qtsvg)
-         ("qtx11extras" ,qtx11extras)
-         ("qtxmlpatterns" ,qtxmlpatterns)
-         ("qtwebkit" ,qtwebkit)
-         ("tbb" ,tbb)
-         ("vtk" ,vtk)
-         ("xerces-c" ,xerces-c)
-         ("zlib" ,zlib)))
-      (arguments
-       `(#:tests? #f
-         #:configure-flags
-         (list
-          "-DBUILD_QT5=ON"
-          (string-append "-DCMAKE_INSTALL_LIBDIR=" (assoc-ref %outputs "out") "/lib")
-          (string-append "-DPYSIDE2UICBINARY="
-                         (assoc-ref %build-inputs "python-pyside-2-tools")
-                         "/bin/uic")
-          (string-append "-DPYSIDE2RCCBINARY="
-                         (assoc-ref %build-inputs "python-pyside-2-tools")
-                         "/bin/rcc")
-          "-DPYSIDE_LIBRARY=PySide2::pyside2"
-          (string-append
-           "-DPYSIDE_INCLUDE_DIR="
-           (assoc-ref %build-inputs "python-pyside-2") "/include;"
-           (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2;"
-           (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2/QtCore;"
-           (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2/QtWidgets;"
-           (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2/QtGui;")
-          "-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
-          (string-append "-DSHIBOKEN_INCLUDE_DIR="
-                         (assoc-ref %build-inputs "python-shiboken-2")
-                         "/include/shiboken2"))
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'configure 'restore-pythonpath
-             (lambda _
-               (substitute* "src/Main/MainGui.cpp"
-                 (("_?putenv\\(\"PYTHONPATH=\"\\);") ""))
-               #t))
-           (add-after 'install 'wrap-pythonpath
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (wrap-program (string-append out "/bin/FreeCAD")
-                   (list "PYTHONPATH"
-                         'prefix (list (getenv "PYTHONPATH")))))
-               #t)))))
-      (home-page "https://www.freecadweb.org/")
-      (synopsis "Your Own 3D Parametric Modeler")
-      (description
-       "FreeCAD is a general purpose feature-based, parametric 3D modeler for
+  (package
+    (name "freecad")
+    (version "0.19.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/FreeCAD/FreeCAD")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "0c53q2iawy4yfp11czyc7lbr9ivp3r7v24x4c20myh11wyplffc0"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("graphviz" ,graphviz)
+       ("qttools" ,qttools)
+       ("pkg-config" ,pkg-config)
+       ("python-pyside-2-tools" ,python-pyside-2-tools)
+       ("swig" ,swig)))
+    (inputs
+     `(("boost" ,boost)
+       ("coin3D" ,coin3D)
+       ("double-conversion" ,double-conversion)
+       ("eigen" ,eigen)
+       ("freetype" ,freetype)
+       ("gl2ps" ,gl2ps)
+       ("glew" ,glew)
+       ("hdf5" ,hdf5-1.10)
+       ("jsoncpp" ,jsoncpp)
+       ("libarea" ,libarea)
+       ("libjpeg-turbo" ,libjpeg-turbo)
+       ("libmedfile" ,libmedfile)
+       ("libspnav" ,libspnav)
+       ("libtheora" ,libtheora)
+       ("libtiff" ,libtiff)
+       ("libxi" ,libxi)
+       ("libxmlplusplus" ,libxmlplusplus)
+       ("libxmu" ,libxmu)
+       ("lz4" ,lz4)
+       ("netcdf" ,netcdf)
+       ("opencascade-occt" ,opencascade-occt)
+       ("openmpi" ,openmpi)
+       ("proj" ,proj)
+       ("python-gitpython" ,python-gitpython)
+       ("python-matplotlib" ,python-matplotlib)
+       ("python-pivy" ,python-pivy)
+       ("python-pyside-2" ,python-pyside-2)
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-shiboken-2" ,python-shiboken-2)
+       ("python-wrapper" ,python-wrapper)
+       ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)
+       ("qtwebkit" ,qtwebkit)
+       ("qtx11extras" ,qtx11extras)
+       ("qtxmlpatterns" ,qtxmlpatterns)
+       ("sqlite" ,sqlite)
+       ("tbb" ,tbb)
+       ("vtk" ,vtk-8)
+       ("xerces-c" ,xerces-c)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:tests? #f
+       #:configure-flags
+       (list
+        "-DBUILD_QT5=ON"
+        "-DBUILD_FLAT_MESH:BOOL=ON"
+        (string-append "-DCMAKE_INSTALL_LIBDIR=" (assoc-ref %outputs "out") "/lib")
+        (string-append "-DPYSIDE2UICBINARY="
+                       (assoc-ref %build-inputs "python-pyside-2-tools")
+                       "/bin/uic")
+        (string-append "-DPYSIDE2RCCBINARY="
+                       (assoc-ref %build-inputs "python-pyside-2-tools")
+                       "/bin/rcc")
+        "-DPYSIDE_LIBRARY=PySide2::pyside2"
+        (string-append
+         "-DPYSIDE_INCLUDE_DIR="
+         (assoc-ref %build-inputs "python-pyside-2") "/include;"
+         (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2;"
+         (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2/QtCore;"
+         (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2/QtWidgets;"
+         (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2/QtGui;")
+        "-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
+        (string-append "-DSHIBOKEN_INCLUDE_DIR="
+                       (assoc-ref %build-inputs "python-shiboken-2")
+                       "/include/shiboken2"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'restore-pythonpath
+           (lambda _
+             (substitute* "src/Main/MainGui.cpp"
+               (("_?putenv\\(\"PYTHONPATH=\"\\);") ""))
+             #t))
+         (add-after 'install 'wrap-pythonpath
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/FreeCAD")
+                 (list "PYTHONPATH"
+                       'prefix (list (getenv "PYTHONPATH")))))
+             #t)))))
+    (home-page "https://www.freecadweb.org/")
+    (synopsis "Your Own 3D Parametric Modeler")
+    (description
+     "FreeCAD is a general purpose feature-based, parametric 3D modeler for
 CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering and
 product design but also fits a wider range of uses in engineering, such as
 architecture or other engineering specialties.  It is 100% Open Source (LGPL2+
 license) and extremely modular, allowing for very advanced extension and
 customization.")
-      (license
-       (list
-        license:lgpl2.1+
-        license:lgpl2.0+
-        license:gpl3+
-        license:bsd-3)))))
+    (license
+     (list
+      license:lgpl2.1+
+      license:lgpl2.0+
+      license:gpl3+
+      license:bsd-3))))
+
 
 (define-public libmedfile
   (package
-- 
2.31.0