summaryrefslogtreecommitdiff
path: root/gnu/packages/engineering.scm
diff options
context:
space:
mode:
authorJonathan Lin <jonathanylin1111@gmail.com>2025-10-23 21:05:39 -0700
committerGabriel Wicki <gabriel@erlikon.ch>2025-10-24 22:55:13 +0200
commite523f95fc285d491d490d69d82de1cc7ba136aa8 (patch)
treeb8fe5c1baefe1eae9d145f65a5603af2755e1ef9 /gnu/packages/engineering.scm
parenta59f32a2c36c8fa54dde8faa8decb67db7e2e29e (diff)
gnu: fritzing: Fix build.
* gnu/local.mk: Register patch. * gnu/packages/engineering.scm (fritzing): [patches]: Add patch. [arguments] <#:phases>: Move source code substitution from configure to after unpack. Patch src/utils/textutils.cpp to remove non-determinism. Add generate-parts-db. * gnu/packages/patches/fritzing-0.9.6-fix-types.patch: New patch. Fixes: guix/guix#3432 Change-Id: Id42f425c1da59cbc56b0b6bbd71380112a655280 Signed-off-by: Gabriel Wicki <gabriel@erlikon.ch>
Diffstat (limited to 'gnu/packages/engineering.scm')
-rw-r--r--gnu/packages/engineering.scm32
1 files changed, 23 insertions, 9 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 00cbdea33a3..d61b5ce288a 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -722,12 +722,21 @@ multipole-accelerated algorithm.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs"))))
+ (base32 "083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs"))
+ (patches (search-patches "fritzing-0.9.6-fix-types.patch"))))
(build-system gnu-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-files
+ (lambda _
+ ;; Trick the internal mechanism to load the parts
+ (substitute* "src/version/partschecker.cpp"
+ ((".*git_libgit2_init.*")
+ "return \"083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs\";"))
+ (substitute* "src/utils/textutils.cpp"
+ (("QUuid::createUuid\\(\\)") "QUuid()"))))
(replace 'configure
(lambda _
;; Integrate parts library
@@ -744,17 +753,22 @@ multipole-accelerated algorithm.")
"INCLUDEPATH += $$LIBGIT2INCLUDE\n"
"LIBS += -L$$LIBGIT2LIB -lgit2\n"))
(("^.*pri/libgit2detect.pri.") ""))
- ;; Trick the internal mechanism to load the parts
- (substitute* "src/version/partschecker.cpp"
- ((".*git_libgit2_init.*")
- "return \"083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs\";"))
- ;; XXX: NixOS and Gento have a phase where they generate part
- ;; SQLite library, have proper investigation if it's required in
- ;; Guix as well.
(invoke "qmake"
(string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," #$output "/lib")
(string-append "PREFIX=" #$output)
- "phoenix.pro"))))))
+ "phoenix.pro")))
+ (add-after 'install 'generate-parts-db
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (env-qt-qpa-platform (getenv "QT_QPA_PLATFORM"))
+ (env-qt-hash-seed (getenv "QT_HASH_SEED")))
+ (setenv "QT_QPA_PLATFORM" "offscreen")
+ (setenv "QT_HASH_SEED" "0")
+ (invoke (string-append out "/bin/Fritzing")
+ "-db" (string-append out "/share/fritzing/parts/parts.db")
+ "-folder" (string-append out "/share/fritzing"))
+ (setenv "QT_QPA_PLATFORM" env-qt-qpa-platform)
+ (setenv "QT_HASH_SEED" env-qt-hash-seed)))))))
(native-inputs
(list fritzing-parts))
(inputs