Package: guix-patches;
Reported by: Morgan.J.Smith <at> outlook.com
Date: Wed, 10 May 2023 17:23:01 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Morgan Smith <Morgan.J.Smith <at> outlook.com> To: 63422 <at> debbugs.gnu.org Subject: [bug#63422] [PATCH 1/3] gnu: libfive: Fix install and wrap Studio. Date: Wed, 10 May 2023 13:46:16 -0400
The old install phase didn't handle nested directories (which there are) and the cmake files didn't seem to install the go files in a way that guile would use so I just used the guile build system instead. Also Studio works much better when it know where the libraries are. * gnu/packages/engineering.scm (libfive) [imported-modules]: Add (guix build guile-build-system). [modules]: Add (guix build guile-build-system). [configure-flags]: Remove. [phases]: Remove phases 'fix-autocompilation and 'install-scm-files. Add phase 'do-not-build-guile-bindings and add phase 'guile-build which uses the guile build system. Add wrap-studio phase. [inputs]: Add bash-minimal for the wrapper. Use qtbase instead of qtbase-5 --- gnu/packages/engineering.scm | 47 ++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index a8261dfbc1..1f7fdf942f 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -20,7 +20,7 @@ ;;; Copyright © 2020, 2021 Ekaitz Zarraga <ekaitz <at> elenq.tech> ;;; Copyright © 2020 B. Wilson <elaexuotee <at> wilsonb.com> ;;; Copyright © 2020, 2021, 2022, 2023 Vinicius Monego <monego <at> posteo.net> -;;; Copyright © 2020, 2021 Morgan Smith <Morgan.J.Smith <at> outlook.com> +;;; Copyright © 2020, 2021, 2023 Morgan Smith <Morgan.J.Smith <at> outlook.com> ;;; Copyright © 2021 qblade <qblade <at> protonmail.com> ;;; Copyright © 2021 Gerd Heber <gerd.heber <at> gmail.com> ;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv <at> posteo.net> @@ -908,17 +908,21 @@ (define-public libfive (build-system cmake-build-system) (arguments (list + #:imported-modules `((guix build guile-build-system) + ,@%cmake-build-system-modules) + #:modules '((guix build cmake-build-system) + ((guix build guile-build-system) #:prefix guile:) + (guix build utils)) #:test-target "libfive-test" - #:configure-flags - #~(list (string-append "-DGUILE_CCACHE_DIR=" - #$output "/lib/guile/3.0/site-ccache")) #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'fix-autocompilation - (lambda _ (setenv "HOME" "/tmp"))) (add-after 'unpack 'remove-native-compilation (lambda _ (substitute* "CMakeLists.txt" (("-march=native") "")))) + (add-after 'unpack 'remove-environment-variable-override + (lambda _ + (substitute* "studio/src/guile/interpreter.cpp" + (("qputenv\\(\"GUILE_LOAD_COMPILED_PATH\".*") "")))) (add-after 'unpack 'fix-library-location (lambda _ (substitute* "libfive/bind/guile/libfive/lib.scm" @@ -926,19 +930,32 @@ (define-public libfive (string-append m "\n\"" #$output "/lib/\"")) (("\\(get-environment-variable \"LIBFIVE_STDLIB_DIR\"\\)" m) (string-append m "\n\"" #$output "/lib/\""))))) - (add-after 'install 'install-scm-files + (add-after 'unpack 'do-not-build-guile-bindings + (lambda _ + (delete-file "libfive/bind/guile/CMakeLists.txt") + (call-with-output-file + "libfive/bind/guile/CMakeLists.txt" + (lambda (port) + (display "add_custom_target(libfive-guile)\n" port))))) + (add-after 'build 'guile-build + (lambda args + (apply (assoc-ref guile:%standard-phases 'build) + #:source-directory "../source/libfive/bind/guile" + args))) + (add-after 'install 'wrap-studio (lambda _ - (for-each - (lambda (file) - (install-file file - (string-append #$output - "/share/guile/site/3.0/libfive"))) - (find-files "../source/libfive/bind/guile/libfive" - "\\.scm$"))))))) + (let* ((effective-version (guile:target-guile-effective-version)) + (scm (string-append #$output "/share/guile/site/" + effective-version)) + (go (string-append #$output "/lib/guile/" + effective-version "/site-ccache"))) + (wrap-program (string-append #$output "/bin/Studio") + `("GUILE_LOAD_PATH" ":" prefix (,scm)) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,go))))))))) (native-inputs (list pkg-config)) (inputs - (list boost libpng qtbase-5 eigen guile-3.0)) + (list boost libpng qtbase eigen guile-3.0 bash-minimal)) (home-page "https://libfive.com") (synopsis "Tool for programmatic computer-aided design") (description base-commit: e0c35d1578c10a8fe27c8372f3a8bb5dd88b01b8 -- 2.39.2
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.