diff options
| author | Jonathan Lin <jonathanylin1111@gmail.com> | 2025-10-23 21:05:39 -0700 |
|---|---|---|
| committer | Gabriel Wicki <gabriel@erlikon.ch> | 2025-10-24 22:55:13 +0200 |
| commit | e523f95fc285d491d490d69d82de1cc7ba136aa8 (patch) | |
| tree | b8fe5c1baefe1eae9d145f65a5603af2755e1ef9 /gnu/packages/engineering.scm | |
| parent | a59f32a2c36c8fa54dde8faa8decb67db7e2e29e (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.scm | 32 |
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 |
