[bug#56638,v3] gnu: Add asli.
Commit Message
* gnu/packages/graphics.scm (asli): New variable.
* gnu/packages/patches/asli-use-system-libs.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register patch.
---
Ludo,
I've added the header line to the patch file as you requested,
but I can't reproduce your failure to build the derivation.
The patch applies cleanly for me.
What command are you running so I can try to reproduce it?
Best regards,
Paul
gnu/local.mk | 1 +
gnu/packages/graphics.scm | 74 +++++++++++++++++++
.../patches/asli-use-system-libs.patch | 72 ++++++++++++++++++
3 files changed, 147 insertions(+)
create mode 100644 gnu/packages/patches/asli-use-system-libs.patch
--
2.37.2
Comments
Hi Ludo,
On 2022-09-02 16:34:29-04:00, Paul A. Patience wrote:
> I've added the header line to the patch file as you requested,
> but I can't reproduce your failure to build the derivation.
> The patch applies cleanly for me.
> What command are you running so I can try to reproduce it?
Just pinging you, since I forgot to CC you in the v3 patch.
Best regards,
Paul
Hi Paul,
"Paul A. Patience" <paul@apatience.com> skribis:
> * gnu/packages/graphics.scm (asli): New variable.
> * gnu/packages/patches/asli-use-system-libs.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Register patch.
Thanks; I hadn’t noticed this new version.
> I've added the header line to the patch file as you requested,
> but I can't reproduce your failure to build the derivation.
> The patch applies cleanly for me.
Unfortunately I’m still getting this error.
> What command are you running so I can try to reproduce it?
After applying this patch, I run “./pre-inst-env guix build asli”, which
fails while building the source derivation, applying
‘asli-use-system-libs.patch’:
--8<---------------cut here---------------start------------->8---
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/clean.sh' -> `asli-0.1-checkout/docs/manual/clean.sh'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/cube_mixed.png' -> `asli-0.1-checkout/docs/manual/figures/cube_mixed.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/cube_feature.png' -> `File CMakeLists.txt is read-only; trying to patch anyway
patching file CMakeLists.txt
Hunk #2 FAILED at 172.
Hunk #3 succeeded at 240 (offset 1 line).
Hunk #4 succeeded at 253 (offset 1 line).
1 out of 4 hunks FAILED -- saving rejects to file CMakeLists.txt.rej
source is at 'asli-0.1-checkout'
applying '/gnu/store/dfkl666kwj1kp2faqgxs53g0nl08xciy-asli-use-system-libs.patch'...
Backtrace:
5 (primitive-load "/gnu/store/2mbw73469dam9j1n9lf7n9yvq3h…")
In ice-9/eval.scm:
619:8 4 (_ #(#(#<directory (guile-user) 7ffff5fdbc80> "asl…") #))
In ice-9/boot-9.scm:
142:2 3 (dynamic-wind #<procedure 7ffff5f12320 at ice-9/eval.s…> …)
In ice-9/eval.scm:
619:8 2 (_ #(#(#<directory (guile-user) 7ffff5fdbc80>)))
In srfi/srfi-1.scm:
634:9 1 (for-each #<procedure apply-patch (a)> ("/gnu/store/df…"))
In guix/build/utils.scm:
762:6 0 (invoke "/gnu/store/z39hnrwds1dgcbpfgj8dnv2cngjb2xbl-p…" …)
guix/build/utils.scm:762:6: In procedure invoke:
ERROR:
1. &invoke-error:
program: "/gnu/store/z39hnrwds1dgcbpfgj8dnv2cngjb2xbl-patch-2.7.6/bin/patch"
arguments: ("--force" "--no-backup-if-mismatch" "-p1" "--input" "/gnu/store/dfkl666kwj1kp2faqgxs53g0nl08xciy-asli-use-system-libs.patch")
exit-status: 1
term-signal: #f
stop-signal: #f
asli-0.1-checkout/docs/manual/figures/cube_feature.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/KUL.png' -> `asli-0.1-checkout/docs/manual/figures/KUL.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/cube_standart.png' -> `asli-0.1-checkout/docs/manual/figures/cube_standart.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/ASLI.png' -> `asli-0.1-checkout/docs/manual/figures/ASLI.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/cube_type.png' -> `asli-0.1-checkout/docs/manual/figures/cube_type.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/cube_feature_dp.png' -> `asli-0.1-checkout/docs/manual/figures/cube_feature_dp.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/Sample-S5VF0p5.png' -> `asli-0.1-checkout/docs/manual/figures/Sample-S5VF0p5.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/gui.png' -> `asli-0.1-checkout/docs/manual/figures/gui.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/acetabular_implant.png' -> `asli-0.1-checkout/docs/manual/figures/acetabular_implant.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/femoral_implant.png' -> `asli-0.1-checkout/docs/manual/figures/femoral_implant.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/cube_type_dp.png' -> `asli-0.1-checkout/docs/manual/figures/cube_type_dp.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/cube.png' -> `asli-0.1-checkout/docs/manual/figures/cube.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/cube_size_dp.png' -> `asli-0.1-checkout/docs/manual/figures/cube_size_dp.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/docs/manual/figures/cube_size.png' -> `asli-0.1-checkout/docs/manual/figures/cube_size.png'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/inputs/cube.tap' -> `asli-0.1-checkout/inputs/cube.tap'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/inputs/cube.stl' -> `asli-0.1-checkout/inputs/cube.stl'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/inputs/cube.sap' -> `asli-0.1-checkout/inputs/cube.sap'
`/gnu/store/x9nvdyfsixc2j6vzi9131dl5wk8zg8g4-asli-0.1-checkout/inputs/cube.fap' -> `asli-0.1-checkout/inputs/cube.fap'
builder for `/gnu/store/5lhzvxmgxm20mq5agpq7kklbdq2ynd0m-asli-0.1-checkout.drv' failed with exit code 1
build of /gnu/store/5lhzvxmgxm20mq5agpq7kklbdq2ynd0m-asli-0.1-checkout.drv failed
--8<---------------cut here---------------end--------------->8---
And I have:
--8<---------------cut here---------------start------------->8---
$ sha256sum gnu/packages/patches/asli-use-system-libs.patch
1a922b39a53b8cb0bd99e6c94e90769efaad88634b56d8df03811f68e45a003c gnu/packages/patches/asli-use-system-libs.patch
--8<---------------cut here---------------end--------------->8---
Am I missing something?
Thanks,
Ludo’.
@@ -867,6 +867,7 @@ dist_patch_DATA = \
%D%/packages/patches/aoflagger-use-system-provided-pybind11.patch \
%D%/packages/patches/apr-skip-getservbyname-test.patch \
%D%/packages/patches/ark-skip-xar-test.patch \
+ %D%/packages/patches/asli-use-system-libs.patch \
%D%/packages/patches/aspell-CVE-2019-25051.patch \
%D%/packages/patches/aspell-default-dict-dir.patch \
%D%/packages/patches/ath9k-htc-firmware-binutils.patch \
@@ -2295,6 +2295,80 @@ (define-public mmg
@end itemize")
(license license:lgpl3+)))
+(define-public asli
+ (package
+ (name "asli")
+ (version "0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tpms-lattice/ASLI")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "02hwdavpsy3vmivd6prp03jn004ykrl11lbkvksy5i2zm38zbknr"))
+ (patches (search-patches "asli-use-system-libs.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Remove bundled libraries except (the ones missing from Guix and)
+ ;; KU Leuven's mTT, which is an obscure (i.e., unfindable by searching
+ ;; online for “mTT KU Leuven”), BSD-3 licensed, header-only library.
+ #~(begin
+ ;;(delete-file-recursively "libs/AdaptTools") ; Missing from Guix
+ (delete-file-recursively "libs/CGAL")
+ ;;(delete-file-recursively "libs/alglib") ; Missing from Guix
+ (delete-file-recursively "libs/eigen")
+ (delete-file-recursively "libs/mmg")
+ ;;(delete-file-recursively "libs/tetgen") ; Missing from Guix
+ (delete-file-recursively "libs/yaml")))))
+ (build-system cmake-build-system)
+ (inputs
+ (list boost
+ cgal
+ eigen
+ gmp
+ `(,mmg "lib")
+ mpfr
+ tbb-2020
+ yaml-cpp))
+ (arguments
+ (list #:tests? #f ; No tests
+ #:configure-flags
+ #~(list "-DCGAL_ACTIVATE_CONCURRENT_MESH_3=ON"
+ (string-append "-DEIGEN3_INCLUDE_DIR="
+ #$(this-package-input "eigen")
+ "/include/eigen3")
+ (string-append "-DMMG_INCLUDE_DIR="
+ (ungexp (this-package-input "mmg") "lib")
+ "/include")
+ (string-append "-DMMG_LIBRARY_DIR="
+ (ungexp (this-package-input "mmg") "lib")
+ "/lib"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'install ; No install phase
+ (lambda _
+ (with-directory-excursion "../source/bin"
+ (install-file "ASLI" (string-append #$output "/bin"))
+ ;; The manual is included in the repository.
+ ;; Building it requires -DASLI_DOC=ON, but this is marked
+ ;; as unsupported (presumably for users).
+ ;; Besides, some of the LaTeX packages it uses are
+ ;; missing from Guix, for example emptypage, fvextra and
+ ;; menukeys.
+ (install-file "docs/ASLI [User Manual].pdf"
+ (string-append #$output "/share/doc/"
+ #$name "-" #$version))))))))
+ (home-page "http://www.biomech.ulg.ac.be/ASLI/")
+ (synopsis "Create lattice infills with varying unit cell type, size and feature")
+ (description "ASLI (A Simple Lattice Infiller) is a command-line tool that
+allows users to fill any 3D geometry with a functionally graded lattice. The
+lattice infill is constructed out of unit cells, described by implicit
+functions, whose type, size and feature can be varied locally to obtain the
+desired local properties.")
+ (license license:agpl3+)))
+
(define-public f3d
;; There have been many improvements since the last tagged version (1.2.1,
;; released in December 2021), including support for the Alembic file
new file mode 100644
@@ -0,0 +1,72 @@
+Adjust CMakeLists.txt to use system-provided mmg and yaml-cpp libraries.
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b11c5ba..702423e 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -122,28 +122,8 @@ if(MMG_MESH)
+ add_definitions(-DMMG_MESH)
+
+ # MMG
+- set(MMG_PREFIX mmg3d)
+- set(MMG_PREFIX_DIR ${CMAKE_CURRENT_BINARY_DIR}/${MMG_PREFIX})
+- set(MMG_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/${MMG_PREFIX})
+- ExternalProject_Add(${MMG_PREFIX}
+- PREFIX ${MMG_PREFIX_DIR}
+- SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libs/mmg
+-
+- BUILD_ALWAYS OFF
+- INSTALL_DIR ${MMG_INSTALL_DIR}
+-
+- CMAKE_ARGS(-DCMAKE_BUILD_TYPE=Release -DBUILD=MMG3D -DLIBMMG3D_STATIC=ON
+- -DLIBMMG3D_SHARED=OFF -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>)
+-
+- BUILD_COMMAND make
+- INSTALL_COMMAND make install
+- )
+- set(MMG3D_INCLUDE_DIRS "${MMG_INSTALL_DIR}/include")
+- set(MMG3D_LIBRARIES "${MMG_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${MMG_PREFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+-
+- include_directories(${MMG3D_INCLUDE_DIRS})
+- #add_library(MMG3D STATIC IMPORTED)
+- #set_target_properties(MMG3D PROPERTIES IMPORTED_LOCATION "${MMG3D_LIBRARIES}")
++ include_directories(${MMG_INCLUDE_DIR})
++ set(MMG3D_LIBRARIES ${MMG_LIBRARY_DIR}/libmmg3d.so)
+
+ # MshMet
+ set(MSHMET_PREFIX mshmet)
+@@ -192,14 +172,8 @@ target_include_directories(tet PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/libs/tetgen)
+ target_compile_definitions(tet PUBLIC TETLIBRARY) # -DTETLIBRARY: flag to compile tetgen as a library
+
+ # yaml
+-file(GLOB yaml_SRC CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libs/yaml/src/*.cpp) # Using file GLOB is not recomended!
+-add_library(yaml STATIC)
+-target_include_directories(yaml
+- PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/libs/yaml/include
+- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/libs/yaml/src
+-)
+-target_sources(yaml PRIVATE ${yaml_SRC})
+-set_target_properties(yaml PROPERTIES CXX_STANDARD 11)
++find_package(yaml-cpp REQUIRED)
++include_directories(${YAML_CPP_INCLUDE_DIRS})
+
+ # Compile options for debuging
+ if(CMAKE_BUILD_TYPE MATCHES Debug)
+@@ -259,7 +233,7 @@ if(MARCH_NATIVE)
+ endif()
+
+ # Create entries for C++ files in "ASLI" routine
+-target_link_libraries(ASLI PUBLIC alg tet yaml)
++target_link_libraries(ASLI PUBLIC alg tet ${YAML_CPP_LIBRARIES})
+ if(NOT MSVC)
+ target_link_libraries(ASLI PUBLIC stdc++fs)
+ endif()
+@@ -272,7 +246,7 @@ if(CGAL_MESH)
+ endif()
+
+ if(MMG_MESH)
+- add_dependencies(ASLI ${MMG_PREFIX} ${MSHMET_PREFIX})
++ add_dependencies(ASLI ${MSHMET_PREFIX})
+ target_link_libraries(ASLI PUBLIC ${MMG3D_LIBRARIES} ${MSHMET_LIBRARIES})
+ if(SCOTCH_FOUND)
+ target_link_libraries(ASLI PUBLIC ${SCOTCH_LIBRARIES} scotch)