FreeCAD dependency probably outdated

  • Open
  • quality assurance status badge
Details
3 participants
  • Buttons Presser
  • Ricardo Wurmus
  • wakyct
Owner
unassigned
Submitted by
Buttons Presser
Severity
normal
B
B
Buttons Presser wrote on 7 Apr 13:54 +0200
(address . bug-guix@gnu.org)
87bk6lo0a8.fsf@disroot.org
Dear Guix people,

I have checked FreeCAD on several machines and get the same error.

To reproduce:
- guix install freecad
- Open FreeCAD
- Create new document
- Select 'Draft' workbench

This produces an error:

'<built-in function SoFieldContainer_getField> returned a result with an exception set'

The backtrace and also as some forums suggest (e.g., https://forum.freecad.org/viewtopic.php?t=74156)that the issue is the outdated 'python-pivy'. The dependency version in python-xyz.scm is 0.6.5 released Jan 12, 2020 where latest release 0.6.8 is from Aug 25, 2022.

I have tried to build newer version of 'python-pivy' but I hit some errors that I do not understand how to fix. The errors from build log among other things tell that it 'Could not find a package configuration file provided by "Qt5Core" with any of the following names: Qt5CoreConfig.cmake qt5core-config.cmake'.

Could somebody with more knowledge about building freecad help or give some suggestions how can I define latest 'python-pivy' (assuming the outdated package causes the 'Draft' workbench crash).

guix describe:

guix 1dbe492
branch: master
commit: 1dbe492b993a7629df3b35146ce0272b52913776
B
B
Buttons Presser wrote on 8 Apr 17:08 +0200
(address . 70258@debbugs.gnu.org)
87il0rnb7d.fsf@disroot.org
I looked at the 'python-pivy' issue again today. I was able to build 'python-pivy' from git with:

cd pivy
guix shell -D python-pivy -- python3 setup.py build

Examining build log of the former and comparing to the build log of standard 'guix build python-pivy --load-path=/my/python-pivy.scm' I found some differences in paths passed as arguments to the 'swig' command called by 'setup.py'. Specifically the 'swig' command is different in its last '-I' argument

guix shell -D python-pivy -- python3 setup.py build:

-I"/gnu/store/1k54m72p12h0lkqa9iicfknydawdfrbm-profile/include"

guix build python-pivy --load-path=/my/python-pivy.scm

-I"/gnu/store/ivbbmgrvhdc46p2ywx1x2zsmal3x0z5n-soqt-1.6.0-1.fb8f655/include"

Both paths have 'Inventor' dir in it but the former has a lot of symlinks to the Coin but the later has only one symlink to Qt dir. I think this is why there was a buildsystem patch commented as "respect Coin3D include directory". It does not work for the latest python-pivy and this is where I stuck. Do not understand why with 'guix shell -D python-pivy -- python3 setup.py build' works whereas 'guix build python-pivy --load-path=/my/python-pivy.scm' does not and how can I fix/path.
B
B
Buttons Presser wrote on 8 Apr 17:11 +0200
(address . 70258@debbugs.gnu.org)
87edbfnb38.fsf@disroot.org
Moreover it seems that there is another issue already. I just did guix pull ('guix describe' -> guix bfc6143) and now freecad can not even be installed. This time 'python-pyside' dependency is not building. Bellow is python-pyside-2-5.15.10 build log:

phase `go-to-source-dir' succeeded after 0.0 seconds
starting phase `fix-qt-module-detection'
error: in phase 'fix-qt-module-detection': uncaught exception:
wrong-type-arg "string-append" "Wrong type (expecting ~A): ~S" ("string" #f) (#f)
phase `fix-qt-module-detection' failed after 0.0 seconds
Backtrace:
19 (primitive-load "/gnu/store/hmja8r0wsfk8vjxkvy0fxa5sfbi…")
In guix/build/gnu-build-system.scm:
908:2 18 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
In ice-9/boot-9.scm:
1752:10 17 (with-exception-handler _ _ #:unwind? _ # _)
In srfi/srfi-1.scm:
634:9 16 (for-each #<procedure 7ffff40d35e0 at guix/build/gnu-b…> …)
In ice-9/boot-9.scm:
1752:10 15 (with-exception-handler _ _ #:unwind? _ # _)
In guix/build/gnu-build-system.scm:
929:23 14 (_)
In ice-9/eval.scm:
293:34 13 (_ #(#(#<directory (guile-user) 7ffff77f7c80>) (# # …)))
In srfi/srfi-1.scm:
586:29 12 (map1 ("/gnu/store/rlim3xrf4v1hzjd3k6vpl2i0k53l2fsf-…" …))
586:29 11 (map1 ("/gnu/store/i5mkjrxmyybshk3ka3m47piqv77698gz-…" …))
586:29 10 (map1 ("/gnu/store/59rqjp4g9xsmcfcgss2174ak13nd1dm1-…" …))
586:29 9 (map1 ("/gnu/store/q8iwl3sdgdvwxfgxsbvga70kb88wykch-…" …))
586:29 8 (map1 ("/gnu/store/alp588qxq5hd57hxm58i7dmqxm362z77-…" …))
586:29 7 (map1 ("/gnu/store/4011bxwbpj51rxq9n739dr29iqdwrnhj-…" …))
586:29 6 (map1 ("/gnu/store/f8zsbzvyzwnlr2g26s31h5km41gh66b8-…" …))
586:29 5 (map1 ("/gnu/store/f887mmvdhg166p0pr78r02k10lrx6h1k-…" …))
586:29 4 (map1 ("/gnu/store/wgzaypbf65az91pgmmyjncv9rrjc3dh0-…" …))
586:17 3 (map1 (#f "/gnu/store/8rxh7dxsr5jagkxmzmlys242jy8l8p…" …))
In unknown file:
2 (string-append #f "/include/qt5")
In ice-9/boot-9.scm:
1685:16 1 (raise-exception _ #:continuable? _)
1685:16 0 (raise-exception _ #:continuable? _)
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure string-append: Wrong type (expecting string): #f


Can someone, please, check if this is indeed a new issue or freecad can still be installed?
B
B
Buttons Presser wrote on 8 Apr 17:17 +0200
(address . 70258@debbugs.gnu.org)
87a5m3natf.fsf@disroot.org
Bellow for the reference is the content of '/my/python-pivy.scm' that I used in 'guix build python-pivy --load-path=/my/python-pivy.scm' command:

(define-module (guixmiss packages python)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix hg-download)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
(define-public python-pivy
(package
(name "python-pivy")
;; (version "0.6.8")
(version "0.6.9.a0")
(source
(origin
(method git-fetch)
(uri (git-reference
(commit version)))
(file-name (git-file-name name version))
(sha256
;; (base32 "00l4r06dwmgn8h29nrl3g3yv33cfyizyylk28x1j95qyj36sggfb") ;; (version "0.6.8")
(base32 "13v9bfmipfhjbwnrl96d82fgb317j2sijgpzhhk02390649qbx6c") ;; (version "0.6.9.a0")
)
))
;; (build-system cmake-build-system)
(build-system python-build-system)
;; (build-system pyproject-build-system)
(arguments
`(;; The test suite fails due to an import cycle between 'pivy' and '_coin'
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-cmake-include-dirs
(lambda _
;; Patch buildsystem to respect Coin3D include directory
(substitute* "interfaces/CMakeLists.txt"
(("\\$\\{SoQt_INCLUDE_DIRS}")
"${Coin_INCLUDE_DIR}\" -I\"${SoQt_INCLUDE_DIRS}"))
#t)))
))
(native-inputs
(specifications->packages
(list
"cmake"
"swig@4.0")))
(inputs
(specifications->packages
(list "python-wrapper"
"qtbase@5"
"libxi"
"libice"
"soqt"
"glew"
"coin3D")))
(synopsis "Python bindings to Coin3D")
(description
"Pivy provides python bindings for Coin, a 3D graphics library with an
Application Programming Interface based on the Open Inventor 2.1 API.")
(license license:isc)))
R
R
Ricardo Wurmus wrote on 12 Apr 13:33 +0200
(address . 70258@debbugs.gnu.org)
87zftyg6i5.fsf@elephly.net
I'm unable to build python-pivy with the suggested changes. Here is the
actual diff I used:
Toggle diff (74 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 92566abfed..8c8b162b55 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -32389,43 +32389,42 @@ (define-public python-retry
(define-public python-pivy
(package
(name "python-pivy")
- (version "0.6.5")
+ (version "0.6.9.a0")
(source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/coin3d/pivy")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0vids7sxk8w5vr73xdnf8xdci71a7syl6cd35aiisppbqyyfmykx"))))
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/coin3d/pivy")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "13v9bfmipfhjbwnrl96d82fgb317j2sijgpzhhk02390649qbx6c"))))
(build-system python-build-system)
(arguments
- `(;; The test suite fails due to an import cycle between 'pivy' and '_coin'
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-cmake-include-dirs
+ `( ;; The test suite fails due to an import cycle between 'pivy' and '_coin'
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-cmake-include-dirs
(lambda _
- ;; Patch buildsystem to respect Coin3D include directory
- (substitute* "CMakeLists.txt"
- (("\\$\\{SoQt_INCLUDE_DIRS}")
- "${Coin_INCLUDE_DIR};${SoQt_INCLUDE_DIRS}"))
- #t)))))
+ ;; Patch build system to respect Coin3D include directory
+ (substitute* "interfaces/CMakeLists.txt"
+ (("\\$\\{SoQt_INCLUDE_DIRS\\}")
+ "${Coin_INCLUDE_DIR};${SoQt_INCLUDE_DIRS}")))))))
(native-inputs
- (list cmake swig))
+ (list cmake swig))
(inputs
- (list python-wrapper
- qtbase-5
- libxi
- libice
- soqt
- glew
- coin3D))
+ (list python-wrapper
+ qtbase-5
+ libxi
+ libice
+ soqt
+ glew
+ coin3D))
(home-page "https://github.com/coin3d/pivy")
(synopsis "Python bindings to Coin3D")
(description
- "Pivy provides python bindings for Coin, a 3D graphics library with an
+ "Pivy provides python bindings for Coin, a 3D graphics library with an
Application Programming Interface based on the Open Inventor 2.1 API.")
(license license:isc)))
I get lots of errors like these:

Toggle snippet (8 lines)
interfaces/coin_header_includes.h:662: Error: Unable to find 'Inventor/VRMLnodes/SoVRMLViewpoint.h'
interfaces/coin_header_includes.h:663: Error: Unable to find 'Inventor/VRMLnodes/SoVRMLVisibilitySensor.h'
interfaces/coin_header_includes.h:664: Error: Unable to find 'Inventor/VRMLnodes/SoVRMLWorldInfo.h'
/gnu/store/ivbbmgrvhdc46p2ywx1x2zsmal3x0z5n-soqt-1.6.0-1.fb8f655/include/Inventor/Qt/devices/SoQtDevice.h:66: Error: Unable to find 'Inventor/SbLinear.h'
/gnu/store/ivbbmgrvhdc46p2ywx1x2zsmal3x0z5n-soqt-1.6.0-1.fb8f655/include/Inventor/Qt/SoQtObject.h:40: Error: Unable to find 'Inventor/SbBasic.h'


--
Ricardo
W
W
wakyct wrote on 14 Apr 19:53 +0200
(address . 70258@debbugs.gnu.org)
ZhwYKiu6emA/Hrde@tilde.team
I've also tried building pivy 0.6.8 against an updated soqt (1.6.2) but get similar errors. Any idea what needs to be
upgraded here to make pivy build?
?