FreeCAD dependency probably outdated

  • Done
  • quality assurance status badge
Details
4 participants
  • Buttons Presser
  • Guillaume Le Vaillant
  • 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?
G
G
Guillaume Le Vaillant wrote on 15 May 14:20 +0200
(address . 70258-done@debbugs.gnu.org)
87bk57l10n.fsf@kitej
-----BEGIN PGP SIGNATURE-----

iIUEAREKAC0WIQTLxZxm7Ce5cXlAaz5r6CCK3yH+PwUCZkSomA8cZ2x2QHBvc3Rl
by5uZXQACgkQa+ggit8h/j+sLgD/a44G5uGneZMNSgzxdeIJFjxcB3M5LsGJP8J7
V6huEXUA/3TZ2Q0x25mFJklBZJm1la4Ra8gCf0pRSnWsoRBb6Amn
=DdcF
-----END PGP SIGNATURE-----

Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 70258@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 70258
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch