[PATCH 0/2] gnu: Add f3d.

  • Done
  • quality assurance status badge
Details
3 participants
  • ???
  • Bruno Victal
  • Paul A. Patience
Owner
unassigned
Submitted by
Paul A. Patience
Severity
normal
P
P
Paul A. Patience wrote on 6 Jun 2022 12:58
(address . guix-patches@gnu.org)(name . Paul A. Patience)(address . paul@apatience.com)
20220606105824.901227-1-paul@apatience.com
Paul A. Patience (2):
gnu: vtk: Enable the RenderingExternal module.
gnu: Add f3d.

gnu/packages/graphics.scm | 111 ++++++++++++++++++++++++++++++
gnu/packages/image-processing.scm | 1 +
2 files changed, 112 insertions(+)

--
2.36.0
P
P
Paul A. Patience wrote on 6 Jun 2022 13:01
[PATCH 1/2] gnu: vtk: Enable the RenderingExternal module.
(address . 55819@debbugs.gnu.org)(name . Paul A. Patience)(address . paul@apatience.com)
20220606110125.902061-1-paul@apatience.com
* gnu/packages/image-processing.scm (vtk)[arguments]<#:configure-flags>:
Add -DVTK_MODULE_ENABLE_VTK_RenderingExternal=YES.
---
gnu/packages/image-processing.scm | 1 +
1 file changed, 1 insertion(+)

Toggle diff (12 lines)
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index f4bf1724b4..249f916489 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -360,6 +360,7 @@ (define-public vtk
"-DVTK_MODULE_USE_EXTERNAL_VTK_theora=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON"
+ "-DVTK_MODULE_ENABLE_VTK_RenderingExternal=YES" ; For F3D
"-DVTK_WRAP_PYTHON=ON"
"-DVTK_PYTHON_VERSION:STRING=3"
)
--
2.36.0
P
P
Paul A. Patience wrote on 6 Jun 2022 13:01
[PATCH 2/2] gnu: Add f3d.
(address . 55819@debbugs.gnu.org)(name . Paul A. Patience)(address . paul@apatience.com)
20220606110125.902061-2-paul@apatience.com
* gnu/packages/graphics.scm (f3d): New variable.
---
gnu/packages/graphics.scm | 111 ++++++++++++++++++++++++++++++++++++++
1 file changed, 111 insertions(+)

Toggle diff (126 lines)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 64286bf68d..d850a9cf06 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -30,6 +30,7 @@
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2054,3 +2055,113 @@ (define-public monado
such as VR and AR on mobile, PC/desktop, and any other device. Monado aims to be
a complete and conforming implementation of the OpenXR API made by Khronos.")
(license license:boost1.0)))
+
+(define-public f3d
+ ;; There have been many improvements since the last tagged version (1.2.1,
+ ;; released in December 2021), including support for the Alembic file
+ ;; format.
+ (let ((commit "d80fd4558f1851a31d13dfbb62d7648b7b2d36f8")
+ (revision "0"))
+ (package
+ (name "f3d")
+ (version (git-version "1.2.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/f3d-app/f3d")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11lj63rfhqp0zwifl2d3rlp7cfbxgr2jb3j7pqh8lhsr2pa94f6s"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ ;; Many tests require files supplied by git-lfs.
+ ;; Also, some tests segfault (after an exception?) but the tested
+ ;; behavior, i.e., when the program is run manually, does not (for
+ ;; example, TestNonExistentConfigFile and TestInvalidConfigFile).
+ ;; Upstream is aware of occasionally flaky tests (see
+ ;; https://github.com/f3d-app/f3d/issues/92) but the tests run in CI
+ ;; seem to be passing.
+ ;; Anyway, the program runs and is able to open at least STL files
+ ;; without issue.
+ #:tests? #f
+ #:configure-flags
+ #~(list (string-append "-DVTK_DIR=" #$output "/lib")
+ "-DBUILD_TESTING=OFF"
+ "-DF3D_MODULE_ALEMBIC=ON"
+ "-DF3D_MODULE_ASSIMP=ON"
+ "-DF3D_MODULE_OCCT=ON"
+ ;; Prefer Guix's versioned documentation directory to F3D's
+ ;; unversioned one.
+ (string-append "-DCMAKE_INSTALL_DOCDIR=" #$output
+ "/share/doc/" #$name "-" #$version))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'adjust-titles-and-descriptions
+ (lambda _
+ (substitute* '("CMakeLists.txt"
+ "resources/f3d.desktop.in"
+ "resources/io.github.f3d_app.f3d.metainfo.xml")
+ (("A fast and minimalist 3D viewer")
+ "Fast and minimalistic 3D viewer"))
+ (substitute* "resources/io.github.f3d_app.f3d.metainfo.xml"
+ (("it is minimalist,")
+ "it is minimalistic,")
+ (("arguments in the command line\\.")
+ "arguments on the command line."))
+ ;; Keep the title bar short.
+ (substitute* "application/F3DConfig.h.in"
+ (("AppTitle = \"@PROJECT_DESCRIPTION@\";")
+ "AppTitle = \"F3D\";"))))
+ (add-after 'unpack 'fix-typos
+ (lambda _
+ (substitute* '("application/F3DOptionsParser.cxx"
+ "application/F3DStarter.cxx"
+ "cmake/testing.cmake"
+ "library/testing/TestSDKHelpers.h")
+ (("does not exists")
+ "does not exist"))))
+ ;; Skip checking for the relative-to-executable configuration file
+ ;; (located in ../../argv[0]) when the user configuration file
+ ;; doesn't exist, because the check fails and prints a warning
+ ;; message upon each invocation of the program.
+ ;; Besides, the usefulness of this configuration file is unclear,
+ ;; because F3D reads /etc/f3d/config.json as a fallback system
+ ;; configuration file.
+ (add-after 'unpack 'ignore-binary-config-file-dir
+ (lambda _
+ (substitute* "application/F3DOptionsParser.cxx"
+ (("^ +filePath = .*->GetBinaryConfigFileDirectory\\(\\) .*")
+ "")))))))
+ (inputs
+ (list alembic
+ assimp
+ double-conversion
+ eigen
+ expat
+ fontconfig
+ freetype
+ glew
+ hdf5
+ imath
+ jsoncpp
+ libjpeg-turbo
+ libpng
+ libtiff
+ libx11
+ lz4
+ netcdf
+ opencascade-occt
+ vtk
+ zlib))
+ (home-page "https://f3d-app.github.io/f3d/")
+ (synopsis "Fast and minimalistic 3D viewer")
+ (description "F3D (pronounced @samp{/f?d/}) is a VTK-based 3D viewer
+following the KISS principle, so it is minimalistic, efficient, has no GUI,
+has simple interaction mechanisms and is fully controllable using arguments on
+the command line. It supports a range of file formats (including animated
+glTF, STL, STEP, PLY, OBJ, FBX), and provides numerous rendering and texturing
+options.")
+ (license license:bsd-3))))
--
2.36.0
P
P
Paul A. Patience wrote on 6 Jun 2022 21:57
[PATCH v2 0/2] gnu: Add f3d.
(address . 55819@debbugs.gnu.org)(name . Paul A. Patience)(address . paul@apatience.com)
20220606195650.1012196-1-paul@apatience.com
Removed VTK_DIR, which is actually superfluous (and was incorrectly set with
‘#$output’ rather than ‘#$(this-package-input)’).

Paul A. Patience (2):
gnu: vtk: Enable the RenderingExternal module.
gnu: Add f3d.

gnu/packages/graphics.scm | 110 ++++++++++++++++++++++++++++++
gnu/packages/image-processing.scm | 1 +
2 files changed, 111 insertions(+)

--
2.36.0
P
P
Paul A. Patience wrote on 6 Jun 2022 21:57
[PATCH v2 1/2] gnu: vtk: Enable the RenderingExternal module.
(address . 55819@debbugs.gnu.org)(name . Paul A. Patience)(address . paul@apatience.com)
20220606195650.1012196-2-paul@apatience.com
* gnu/packages/image-processing.scm (vtk)[arguments]<#:configure-flags>:
Add -DVTK_MODULE_ENABLE_VTK_RenderingExternal=YES.
---
gnu/packages/image-processing.scm | 1 +
1 file changed, 1 insertion(+)

Toggle diff (12 lines)
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index f4bf1724b4..249f916489 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -360,6 +360,7 @@ (define-public vtk
"-DVTK_MODULE_USE_EXTERNAL_VTK_theora=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON"
+ "-DVTK_MODULE_ENABLE_VTK_RenderingExternal=YES" ; For F3D
"-DVTK_WRAP_PYTHON=ON"
"-DVTK_PYTHON_VERSION:STRING=3"
)
--
2.36.0
P
P
Paul A. Patience wrote on 6 Jun 2022 21:57
[PATCH v2 2/2] gnu: Add f3d.
(address . 55819@debbugs.gnu.org)(name . Paul A. Patience)(address . paul@apatience.com)
20220606195650.1012196-3-paul@apatience.com
* gnu/packages/graphics.scm (f3d): New variable.
---
gnu/packages/graphics.scm | 110 ++++++++++++++++++++++++++++++++++++++
1 file changed, 110 insertions(+)

Toggle diff (125 lines)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 64286bf68d..3b81f57e60 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -30,6 +30,7 @@
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2054,3 +2055,112 @@ (define-public monado
such as VR and AR on mobile, PC/desktop, and any other device. Monado aims to be
a complete and conforming implementation of the OpenXR API made by Khronos.")
(license license:boost1.0)))
+
+(define-public f3d
+ ;; There have been many improvements since the last tagged version (1.2.1,
+ ;; released in December 2021), including support for the Alembic file
+ ;; format.
+ (let ((commit "d80fd4558f1851a31d13dfbb62d7648b7b2d36f8")
+ (revision "0"))
+ (package
+ (name "f3d")
+ (version (git-version "1.2.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/f3d-app/f3d")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11lj63rfhqp0zwifl2d3rlp7cfbxgr2jb3j7pqh8lhsr2pa94f6s"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ ;; Many tests require files supplied by git-lfs.
+ ;; Also, some tests segfault (after an exception?) but the tested
+ ;; behavior, i.e., when the program is run manually, does not (for
+ ;; example, TestNonExistentConfigFile and TestInvalidConfigFile).
+ ;; Upstream is aware of occasionally flaky tests (see
+ ;; https://github.com/f3d-app/f3d/issues/92) but the tests run in CI
+ ;; seem to be passing.
+ ;; Anyway, the program runs and is able to open at least STL files
+ ;; without issue.
+ #:tests? #f
+ #:configure-flags
+ #~(list "-DBUILD_TESTING=OFF"
+ "-DF3D_MODULE_ALEMBIC=ON"
+ "-DF3D_MODULE_ASSIMP=ON"
+ "-DF3D_MODULE_OCCT=ON"
+ ;; Prefer Guix's versioned documentation directory to F3D's
+ ;; unversioned one.
+ (string-append "-DCMAKE_INSTALL_DOCDIR=" #$output
+ "/share/doc/" #$name "-" #$version))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'adjust-titles-and-descriptions
+ (lambda _
+ (substitute* '("CMakeLists.txt"
+ "resources/f3d.desktop.in"
+ "resources/io.github.f3d_app.f3d.metainfo.xml")
+ (("A fast and minimalist 3D viewer")
+ "Fast and minimalistic 3D viewer"))
+ (substitute* "resources/io.github.f3d_app.f3d.metainfo.xml"
+ (("it is minimalist,")
+ "it is minimalistic,")
+ (("arguments in the command line\\.")
+ "arguments on the command line."))
+ ;; Keep the title bar short.
+ (substitute* "application/F3DConfig.h.in"
+ (("AppTitle = \"@PROJECT_DESCRIPTION@\";")
+ "AppTitle = \"F3D\";"))))
+ (add-after 'unpack 'fix-typos
+ (lambda _
+ (substitute* '("application/F3DOptionsParser.cxx"
+ "application/F3DStarter.cxx"
+ "cmake/testing.cmake"
+ "library/testing/TestSDKHelpers.h")
+ (("does not exists")
+ "does not exist"))))
+ ;; Skip checking for the relative-to-executable configuration file
+ ;; (located in ../../argv[0]) when the user configuration file
+ ;; doesn't exist, because the check fails and prints a warning
+ ;; message upon each invocation of the program.
+ ;; Besides, the usefulness of this configuration file is unclear,
+ ;; because F3D reads /etc/f3d/config.json as a fallback system
+ ;; configuration file.
+ (add-after 'unpack 'ignore-binary-config-file-dir
+ (lambda _
+ (substitute* "application/F3DOptionsParser.cxx"
+ (("^ +filePath = .*->GetBinaryConfigFileDirectory\\(\\) .*")
+ "")))))))
+ (inputs
+ (list alembic
+ assimp
+ double-conversion
+ eigen
+ expat
+ fontconfig
+ freetype
+ glew
+ hdf5
+ imath
+ jsoncpp
+ libjpeg-turbo
+ libpng
+ libtiff
+ libx11
+ lz4
+ netcdf
+ opencascade-occt
+ vtk
+ zlib))
+ (home-page "https://f3d-app.github.io/f3d/")
+ (synopsis "Fast and minimalistic 3D viewer")
+ (description "F3D (pronounced @samp{/f?d/}) is a VTK-based 3D viewer
+following the KISS principle, so it is minimalistic, efficient, has no GUI,
+has simple interaction mechanisms and is fully controllable using arguments on
+the command line. It supports a range of file formats (including animated
+glTF, STL, STEP, PLY, OBJ, FBX), and provides numerous rendering and texturing
+options.")
+ (license license:bsd-3))))
--
2.36.0
P
P
Paul A. Patience wrote on 14 Jul 2022 19:06
[PATCH v3] gnu: Add f3d.
(name . 55819@debbugs.gnu.org)(address . 55819@debbugs.gnu.org)
FA5kZUe4R1C6dhGsdUQN1WONrIwssPQyO7IW3nAgitOqPoJGoX4ee5zcCXKsH3ZvXFMLtHejIUuMls9cHbvf986lHM4ZXTvoADxH4QVXZMc=@apatience.com
Updated to the latest commit.
From 588a8323e624caf46a94cf2eebf77dc3f5e16cec Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Mon, 6 Jun 2022 06:29:18 -0400
Subject: [PATCH v3 1/2] gnu: vtk: Enable the RenderingExternal module.

* gnu/packages/image-processing.scm (vtk)[arguments]<#:configure-flags>:
Add -DVTK_MODULE_ENABLE_VTK_RenderingExternal=YES.
---
gnu/packages/image-processing.scm | 1 +
1 file changed, 1 insertion(+)

Toggle diff (14 lines)
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index bcb1d7a2f6..ccf9ac1b00 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -358,6 +358,7 @@ (define-public vtk
"-DVTK_MODULE_USE_EXTERNAL_VTK_theora=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON"
+ "-DVTK_MODULE_ENABLE_VTK_RenderingExternal=YES" ; For F3D
"-DVTK_WRAP_PYTHON=ON"
"-DVTK_PYTHON_VERSION:STRING=3"
)
--
2.36.1
?
Re: bug#55819: [PATCH 0/2] gnu: Add f3d.
(name . Paul A. Patience)(address . paul@apatience.com)(name . 55819@debbugs.gnu.org)(address . 55819@debbugs.gnu.org)
875yizrw3m.fsf_-_@envs.net
"Paul A. Patience" <paul@apatience.com> writes:

Hello, I had pushed those patches, with adjusted f3d synopsis and
description (remove "fast", "minimalistic", "KISS"), and also phases.

Toggle quote (40 lines)
> [...]
> + #:phases
> + #~(modify-phases %standard-phases
> + (add-after 'unpack 'adjust-titles-and-descriptions
> + (lambda _
> + (substitute* '("CMakeLists.txt"
> + "resources/f3d.desktop.in"
> + "resources/io.github.f3d_app.f3d.metainfo.xml")
> + (("A fast and minimalist 3D viewer")
> + "Fast and minimalistic 3D viewer"))
> + (substitute* "resources/io.github.f3d_app.f3d.metainfo.xml"
> + (("it is minimalist,")
> + "it is minimalistic,")
> + (("arguments in the command line\\.")
> + "arguments on the command line."))
> + ;; Keep the title bar short.
> + (substitute* "application/F3DConfig.h.in"
> + (("AppTitle = \"@PROJECT_DESCRIPTION@\";")
> + "AppTitle = \"F3D\";"))))
> + (add-after 'unpack 'fix-typos
> + (lambda _
> + (substitute* '("application/F3DOptionsParser.cxx"
> + "application/F3DStarter.cxx"
> + "cmake/testing.cmake"
> + "library/testing/TestSDKHelpers.h")
> + (("does not exists")
> + "does not exist"))))
> + ;; Skip checking for the relative-to-executable configuration file
> + ;; (located in ../../argv[0]) when the user configuration file
> + ;; doesn't exist, because the check fails and prints a warning
> + ;; message upon each invocation of the program.
> + ;; Besides, the usefulness of this configuration file is unclear
> + ;; because F3D reads /etc/f3d/config.json as a fallback system
> + ;; configuration file.
> + (add-after 'unpack 'ignore-binary-config-file-dir
> + (lambda _
> + (substitute* "application/F3DOptionsParser.cxx"
> + (("^ +filePath = .*->GetBinaryConfigFileDirectory\\(\\) .*")
> + "")))))))

I think those titles, descriptions, typos, and warning should go direct
to the upstream, since they don't change the function of f3d, so I pushed
this patch without those modifications first.


Thank you!
B
B
Bruno Victal wrote on 31 Mar 2023 01:00
control-msg
(name . control)(address . control@debbugs.gnu.org)
74912071-f536-c8bc-4711-db295b4da0e6@makinata.eu
# done with 5c131aff691fa1cb0fafe71b5f2795902ae056a7
close 55819

# control fail?
close 45449

# no longer relevant
close 33078

# tags
tags 62551 patch
tags 62503 patch
tags 62461 patch
tags 62443 patch
tags 62428 patch
tags 61226 patch
tags 59893 patch
tags 59852 patch
tags 49451 patch
tags 49207 patch
tags 44258 patch


quit
?