diff mbox series

[bug#46724] gnu: vtk: Update to 9.0.1

Message ID 877dm3jzgo.fsf_-_@gnu.org
State Accepted
Headers show
Series [bug#46724] gnu: vtk: Update to 9.0.1 | expand

Checks

Context Check Description
cbaines/submitting builds success
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Ludovic Courtès March 19, 2021, 8:54 a.m. UTC
Hi Andy,

Thanks for the update!  I spent some time checking whether dependents,
as returned by ‘guix refresh -l vtk’, would still build.

It turns out tha ‘mia’ no longer builds after this update because the
‘VTK_INCLUDE_DIRS’ CMake variable remains empty.  I’m not
familiar (or averse to?) CMake, and I couldn’t figure out why that is
the case.

Could you take a look?

As a last resort, we could preserve VTK 8.2 and use it in MIA.

Attached is my variant of the patch, which propagates libogg, as was
needed for some dependents, but really we could/should propagate
libtheora, lz4, and double-conversion for the same reasons it seems.

Let me know what you think!

Thanks,
Ludo’.

Comments

Andy Tai March 19, 2021, 5:43 p.m. UTC | #1
Ok, I'll take a look.

On Fri, Mar 19, 2021 at 1:54 AM Ludovic Courtès <ludo@gnu.org> wrote:
>
> Hi Andy,
>
> Thanks for the update!  I spent some time checking whether dependents,
> as returned by ‘guix refresh -l vtk’, would still build.
>
> It turns out tha ‘mia’ no longer builds after this update because the
> ‘VTK_INCLUDE_DIRS’ CMake variable remains empty.  I’m not
> familiar (or averse to?) CMake, and I couldn’t figure out why that is
> the case.
>
> Could you take a look?
>
> As a last resort, we could preserve VTK 8.2 and use it in MIA.
>
> Attached is my variant of the patch, which propagates libogg, as was
> needed for some dependents, but really we could/should propagate
> libtheora, lz4, and double-conversion for the same reasons it seems.
>
> Let me know what you think!
>
> Thanks,
> Ludo’.
>
Andy Tai March 29, 2021, 6:42 a.m. UTC | #2
currently, mia build is actually broken with vtk 8.2.0, the version in
guix repo; If I do

guix install mia

that actually fail in build:

[ 13%] Building CXX object
mia/core/fastica/CMakeFiles/test-fastica-deflation-deflationnonlinearity.dir/test_deflationnonlinearity.cc.o
cd /tmp/guix-build-mia-2.4.6.drv-0/build/mia/core/fastica &&
/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/bin/c++
-DBOOST_ALL_DYN_LINK -DBOOST_ALL_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK
-DBOOST_FILESYSTEM_VERSION=3 -DBOOST_SYSTEM_DYN_LINK
-DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK -DHAVE_CONFIG_H
-I/gnu/store/n50ikpnyzdda0zklwnmqasklcrif2csg-eigen-3.3.8/include/eigen3
-I/gnu/store/c8w9z48vvx2a3q3k44ch9yn00wk1qwhb-libxml2-2.9.10/include/libxml2
-I/tmp/guix-build-mia-2.4.6.drv-0/build
-I/tmp/guix-build-mia-2.4.6.drv-0/mia-2.4.6  -fpermissive
-fvisibility=hidden -O2 -g -DNDEBUG   -DBOOST_TEST_DYN_LINK -o
CMakeFiles/test-fastica-deflation-deflationnonlinearity.dir/test_deflationnonlinearity.cc.o
-c /tmp/guix-build-mia-2.4.6.drv-0/mia-2.4.6/mia/core/fastica/test_deflationnonlinearity.cc
/tmp/guix-build-mia-2.4.6.drv-0/mia-2.4.6/addons/vtk/vtkmesh.cc: In
function ‘void vtkmia::read_normals(mia::CTriangleMesh&,
vtkPointData&)’:
/tmp/guix-build-mia-2.4.6.drv-0/mia-2.4.6/addons/vtk/vtkmesh.cc:179:12:
error: ‘class vtkFloatArray’ has no member named ‘GetTupleValue’; did
you mean ‘GetValue’?
   normals->GetTupleValue(i, &is->x);
            ^~~~~~~~~~~~~
            GetValue
/tmp/guix-build-mia-2.4.6.drv-0/mia-2.4.6/addons/vtk/vtkmesh.cc: In
function ‘void vtkmia::read_colors(mia::CTriangleMesh&,
vtkPointData&)’:
/tmp/guix-build-mia-2.4.6.drv-0/mia-2.4.6/addons/vtk/vtkmesh.cc:211:11:
error: ‘class vtkFloatArray’ has no member named ‘GetTupleValue’; did
you mean ‘GetValue’?
   colors->GetTupleValue(i, &is->x);
           ^~~~~~~~~~~~~
           GetValue
make[2]: *** [addons/vtk/CMakeFiles/mesh-io-vtkmesh-common.dir/build.make:66:
addons/vtk/CMakeFiles/mesh-io-vtkmesh-common.dir/vtkmesh.cc.o] Error 1
make[2]: Leaving directory '/tmp/guix-build-mia-2.4.6.drv-0/build'
make[1]: *** [CMakeFiles/Makefile2:23838:
addons/vtk/CMakeFiles/mesh-io-vtkmesh-common.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/tmp/guix-build-mia-2.4.6.drv-0/build'


So this makes a separate bug...

On Fri, Mar 19, 2021 at 10:43 AM Andy Tai <atai@atai.org> wrote:
>
> Ok, I'll take a look.
>
> On Fri, Mar 19, 2021 at 1:54 AM Ludovic Courtès <ludo@gnu.org> wrote:
> >
> > Hi Andy,
> >
> > Thanks for the update!  I spent some time checking whether dependents,
> > as returned by ‘guix refresh -l vtk’, would still build.
> >
> > It turns out tha ‘mia’ no longer builds after this update because the
> > ‘VTK_INCLUDE_DIRS’ CMake variable remains empty.  I’m not
> > familiar (or averse to?) CMake, and I couldn’t figure out why that is
> > the case.
> >
> > Could you take a look?
> >
> > As a last resort, we could preserve VTK 8.2 and use it in MIA.
> >
> > Attached is my variant of the patch, which propagates libogg, as was
> > needed for some dependents, but really we could/should propagate
> > libtheora, lz4, and double-conversion for the same reasons it seems.
> >
> > Let me know what you think!
> >
> > Thanks,
> > Ludo’.
> >
>
>
> --
> Andy Tai, atai@atai.org, Skype: licheng.tai, Line: andy_tai, WeChat: andytai1010
> Year 2021 民國110年
> 自動的精神力是信仰與覺悟
> 自動的行為力是勞動與技能
Ludovic Courtès April 2, 2021, 6:55 a.m. UTC | #3
Hi Andy,

Andy Tai <atai@atai.org> skribis:

> currently, mia build is actually broken with vtk 8.2.0, the version in
> guix repo; If I do

Oh indeed, apologies for overlooking that.

Then I guess we can go ahead with the VTK upgrade.

Thanks,
Ludo’.
Ludovic Courtès April 2, 2021, 7:03 a.m. UTC | #4
Ludovic Courtès <ludo@gnu.org> skribis:

>>From e91dde40896ab156e35ec31533a77c33672460d7 Mon Sep 17 00:00:00 2001
> From: Andy Tai <atai@atai.org>
> Date: Thu, 18 Mar 2021 00:46:45 -0700
> Subject: [PATCH] gnu: vtk: Update to 9.0.1.
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> * gnu/packages/image-processing.scm (vtk): Update to 9.0.1.
> [source](snippet): Remove bundled "ogg" directory as well.
> [arguments]: Adjust #:configure-flags.  Add #:phases.
> [inputs]: Add LIBOGG.
> * gnu/packages/patches/vtk-fix-freetypetools-build-failure.patch: Update.
>
> Co-authored-by: Ludovic Courtès <ludo@gnu.org>

Finally applied, thanks!

I’ll open a separate bug for MIA.

Ludo’.
diff mbox series

Patch

From e91dde40896ab156e35ec31533a77c33672460d7 Mon Sep 17 00:00:00 2001
From: Andy Tai <atai@atai.org>
Date: Thu, 18 Mar 2021 00:46:45 -0700
Subject: [PATCH] gnu: vtk: Update to 9.0.1.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/image-processing.scm (vtk): Update to 9.0.1.
[source](snippet): Remove bundled "ogg" directory as well.
[arguments]: Adjust #:configure-flags.  Add #:phases.
[inputs]: Add LIBOGG.
* gnu/packages/patches/vtk-fix-freetypetools-build-failure.patch: Update.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/image-processing.scm             | 65 ++++++++++++-------
 .../vtk-fix-freetypetools-build-failure.patch | 14 ++--
 2 files changed, 45 insertions(+), 34 deletions(-)

diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 26f6faea8c..605fc1aeb5 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -14,6 +14,7 @@ 
 ;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2021 Oleh Malyi <astroclubzp@gmail.com>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 Andy Tai <atai@atai.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -246,7 +247,7 @@  many popular formats.")
 (define-public vtk
   (package
     (name "vtk")
-    (version "8.2.0")
+    (version "9.0.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://vtk.org/files/release/"
@@ -254,7 +255,7 @@  many popular formats.")
                                   "/VTK-" version ".tar.gz"))
               (sha256
                (base32
-                "1fspgp8k0myr6p2a6wkc21ldcswb4bvmb484m12mxgk1a9vxrhrl"))
+                "1ir2lq9i45ls374lcmjzw0nrm5l5hnm1w47lg8g8d0n2j7hsaf8v"))
               (patches
                (search-patches "vtk-fix-freetypetools-build-failure.patch"))
               (modules '((guix build utils)))
@@ -264,35 +265,46 @@  many popular formats.")
                     (lambda (dir)
                       (delete-file-recursively
                         (string-append "ThirdParty/" dir "/vtk" dir)))
-                    ;; ogg, pugixml depended upon unconditionally
+                    ;; pugixml depended upon unconditionally
                     '("doubleconversion" "eigen" "expat" "freetype" "gl2ps"
                       "glew" "hdf5" "jpeg" "jsoncpp" "libproj" "libxml2" "lz4"
-                      "netcdf" "png" "sqlite" "theora" "tiff" "zlib"))
+                      "netcdf" "ogg" "png" "sqlite" "theora" "tiff" "zlib"))
                   #t))))
     (build-system cmake-build-system)
     (arguments
      '(#:build-type "Release"           ;Build without '-g' to save space.
        #:configure-flags '(;"-DBUILD_TESTING:BOOL=TRUE"
-                           ;"-DVTK_MODULE_USE_EXTERNAL_vtkogg:BOOL=TRUE"    ; not honored
-                           "-DVTK_USE_SYSTEM_DOUBLECONVERSION:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_EIGEN:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_EXPAT:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_FREETYPE:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_GL2PS:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_GLEW:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_HDF5:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_JPEG:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_JSONCPP:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_LIBPROJ:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_LIBXML2:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_LZ4:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_NETCDF:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_PNG:BOOL=TRUE"
-                           ;"-DVTK_USE_SYSTEM_PUGIXML:BOOL=TRUE"    ; breaks IO/CityGML
-                           "-DVTK_USE_SYSTEM_SQLITE:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_THEORA:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_TIFF:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_ZLIB:BOOL=TRUE")
+                           ;    ; not honored
+                           "-DVTK_USE_EXTERNAL=OFF" ;; default
+                           "-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_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_netcdf=ON"
+                           "-DVTK_MODULE_USE_EXTERNAL_VTK_ogg=ON"
+                           "-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON"
+                           ;"-DVTK_MODULE_USE_EXTERNAL_VTK_pugixml=ON"    ; breaks IO/CityGML
+                           "-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_zlib=ON"
+                           )
+       #: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
      `(("double-conversion" ,double-conversion)
@@ -305,7 +317,6 @@  many popular formats.")
        ("hdf5" ,hdf5)
        ("jpeg" ,libjpeg-turbo)
        ("jsoncpp" ,jsoncpp)
-       ;("libogg" ,libogg)
        ("libtheora" ,libtheora)
        ("libX11" ,libx11)
        ("libxml2" ,libxml2)
@@ -320,6 +331,10 @@  many popular formats.")
        ("tiff" ,libtiff)
        ("xorgproto" ,xorgproto)
        ("zlib" ,zlib)))
+    (propagated-inputs
+     ;; VTK's 'VTK-vtk-module-find-packages.cmake' calls
+     ;; 'find_package(THEORA)', which in turns looks for libogg.
+     `(("libogg" ,libogg)))
     (home-page "https://vtk.org/")
     (synopsis "Libraries for 3D computer graphics")
     (description
diff --git a/gnu/packages/patches/vtk-fix-freetypetools-build-failure.patch b/gnu/packages/patches/vtk-fix-freetypetools-build-failure.patch
index 6988e65872..23f651b5eb 100644
--- a/gnu/packages/patches/vtk-fix-freetypetools-build-failure.patch
+++ b/gnu/packages/patches/vtk-fix-freetypetools-build-failure.patch
@@ -17,20 +17,16 @@  diff --git a/Rendering/FreeType/vtkFreeTypeTools.cxx b/Rendering/FreeType/vtkFre
 index c54289dc60..03b899c4da 100644
 --- a/Rendering/FreeType/vtkFreeTypeTools.cxx
 +++ b/Rendering/FreeType/vtkFreeTypeTools.cxx
-@@ -387,11 +387,8 @@ FTC_CMapCache* vtkFreeTypeTools::GetCMapCache()
+@@ -378,8 +378,7 @@ FTC_CMapCache* vtkFreeTypeTools::GetCMapCache()
  }
- 
+
  //----------------------------------------------------------------------------
 -FT_CALLBACK_DEF(FT_Error)
--vtkFreeTypeToolsFaceRequester(FTC_FaceID face_id,
--                              FT_Library lib,
--                              FT_Pointer request_data,
--                              FT_Face* face)
+-vtkFreeTypeToolsFaceRequester(
 +static FT_Error vtkFreeTypeToolsFaceRequester(
-+  FTC_FaceID face_id, FT_Library lib, FT_Pointer request_data, FT_Face* face)
+   FTC_FaceID face_id, FT_Library lib, FT_Pointer request_data, FT_Face* face)
  {
  #if VTK_FTFC_DEBUG_CD
-   printf("vtkFreeTypeToolsFaceRequester()\n");
--- 
+--
 2.30.1
 
-- 
2.31.0