GNU bug report logs - #49713
[PATCH 1/3] gnu: cereal: Use cmake to build and install the library.

Previous Next

Package: guix-patches;

Reported by: Ivan Gankevich <i.gankevich <at> spbu.ru>

Date: Fri, 23 Jul 2021 21:07:01 UTC

Severity: normal

Tags: patch

Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 49713 in the body.
You can then email your comments to 49713 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Fri, 23 Jul 2021 21:07:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ivan Gankevich <i.gankevich <at> spbu.ru>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Fri, 23 Jul 2021 21:07:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ivan Gankevich <i.gankevich <at> spbu.ru>
To: guix-patches <at> gnu.org
Cc: Ivan Gankevich <i.gankevich <at> spbu.ru>
Subject: [PATCH 1/3] gnu: cereal: Use cmake to build and install the library.
Date: Sat, 24 Jul 2021 00:00:39 +0300
Hello,

this series of patches adds Prusa Slicer. I had to change "cereal"
package definition to use cmake, otherwise "prusa-slicer" failed
to find the library. Also, I added "libigl" that is a dependency
of "prusa-slicer".

gnu/packages/serialization.scm (cereal): Use cmake.

* Replace manual build and installation with standard cmake.
  The main reason to do that is to get "cereal-config.cmake"
  file that is used to find the library in other projects.
---

 gnu/packages/serialization.scm | 39 ++++++++++++----------------------
 1 file changed, 13 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 8f292ae408..9c34da62af 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -141,32 +141,19 @@ implement RPC protocols.")
          "0hc8wh9dwpc1w1zf5lfss4vg5hmgpblqxbrpp1rggicpx9ar831p"))))
     (build-system cmake-build-system)
     (arguments
-     `(;; The only included tests are portability tests requiring
-       ;; cross-compilation and boost.  Since we are building cereal on more
-       ;; platforms anyway, there is no compelling reason to build the tests.
-       #:tests? #f
-       #:out-of-source? #f
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'build
-          (lambda _
-            (substitute* "doc/doxygen.in"
-              (("@CMAKE_CURRENT_BINARY_DIR@") ".")
-              (("@CMAKE_CURRENT_SOURCE_DIR@") "."))
-            (with-directory-excursion "doc"
-              (invoke "doxygen" "doxygen.in"))))
-         ;; There is no "install" target, so we have to provide our own
-         ;; "install" phase.
-         (replace 'install
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let* ((out     (assoc-ref outputs "out"))
-                   (doc     (string-append out "/share/cereal/docs"))
-                   (include (string-append out "/include/cereal")))
-              (mkdir-p doc)
-              (mkdir-p include)
-              (copy-recursively "include/cereal" include)
-              (copy-recursively "doc/html" doc)))))))
+      `(#:configure-flags (list "-DSKIP_PORTABILITY_TEST=ON")
+        #:tests? #f
+        #:phases (modify-phases %standard-phases
+                   (add-before 'configure 'skip-sandbox
+                     (lambda _
+                       (substitute* "CMakeLists.txt"
+                         (("add_subdirectory\\(sandbox\\)") ""))))
+                   (add-after 'install 'install-doc
+                     (lambda _
+                       (let ((doc (string-append %output "/share/doc/html")))
+                         (invoke "make" "doc")
+                         (mkdir-p doc)
+                         (copy-recursively "doc/html" doc)))))))
     (native-inputs
      `(("doxygen" ,doxygen)))
     (home-page "https://uscilab.github.io/cereal/")
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Fri, 23 Jul 2021 21:08:02 GMT) Full text and rfc822 format available.

Message #8 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Gankevich <i.gankevich <at> spbu.ru>
To: 49713 <at> debbugs.gnu.org
Cc: Ivan Gankevich <i.gankevich <at> spbu.ru>
Subject: [PATCH 2/3] gnu: Add libigl.
Date: Sat, 24 Jul 2021 00:07:32 +0300
* gnu/packages/engineering.scm (libigl): New variable.
---
 gnu/packages/engineering.scm | 62 ++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index fc932ddb28..eec12814ff 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -2862,3 +2862,65 @@ for hooking Linux system calls in user space.  This is achieved by
 hot-patching the machine code of the standard C library in the memory of
 a process.")
       (license license:bsd-2))))
+
+(define-public libigl
+  (package
+    (name "libigl")
+    (version "2.3.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/libigl/libigl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "004a22ifq2vibgkgvrlyihqimpsfizvq5l448204kwfg3lkycajj"))))
+    (build-system cmake-build-system)
+    (arguments
+      `(#:configure-flags
+        (list "-DLIBIGL_USE_STATIC_LIBRARY=OFF"
+              "-DLIBIGL_BUILD_TESTS=OFF" ;; tests need to download test data
+              "-DLIBIGL_BUILD_TUTORIALS=OFF"
+              "-DLIBIGL_EXPORT_TARGETS=ON"
+              "-DLIBIGL_WITH_CGAL=ON"
+              "-DLIBIGL_WITH_COMISO=OFF"
+              "-DLIBIGL_WITH_CORK=OFF"
+              "-DLIBIGL_WITH_EMBREE=OFF"
+              "-DLIBIGL_WITH_MATLAB=OFF"
+              "-DLIBIGL_WITH_MOSEK=OFF"
+              "-DLIBIGL_WITH_OPENGL=OFF"
+              "-DLIBIGL_WITH_OPENGL_GLFW=OFF"
+              "-DLIBIGL_WITH_OPENGL_GLFW_IMGUI=OFF"
+              "-DLIBIGL_WITH_PNG=OFF"
+              "-DLIBIGL_WITH_TETGEN=OFF"
+              "-DLIBIGL_WITH_TRIANGLE=OFF"
+              "-DLIBIGL_WITH_PREDICATES=OFF"
+              "-DLIBIGL_WITH_XML=OFF")
+        #:tests? #f
+        #:phases
+        (modify-phases %standard-phases
+          (add-before 'configure 'do-not-download-dependencies
+            (lambda _
+              (substitute* "cmake/libigl.cmake"
+                (("if\\(NOT TARGET Eigen3::Eigen\\)" all)
+                 (string-append "find_package(Eigen3 CONFIG REQUIRED)\n" all))
+                (("if\\(NOT TARGET CGAL::CGAL\\)" all)
+                 (string-append "find_package(CGAL CONFIG COMPONENTS Core)\n" all)))))
+          (add-after 'install 'install-all-subdirs
+            (lambda _
+              (copy-recursively
+                "../source/include"
+                (string-append (assoc-ref %outputs "out") "/include")))))))
+    (inputs
+      `(("eigen" ,eigen)
+        ("cgal" ,cgal)
+        ("gmp" ,gmp)
+        ("mpfr" ,mpfr)
+        ("boost" ,boost)))
+    (home-page "https://libigl.github.io/")
+    (synopsis "Simple C++ geometry processing library")
+    (description "The library provides functionality for shape modelling,
+visualization, matrix manipulation.")
+    (license (list license:gpl3 license:mpl2.0))))
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Fri, 23 Jul 2021 21:09:01 GMT) Full text and rfc822 format available.

Message #11 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Gankevich <i.gankevich <at> spbu.ru>
To: 49713 <at> debbugs.gnu.org
Cc: Ivan Gankevich <i.gankevich <at> spbu.ru>
Subject: [PATCH 3/3] gnu: Add prusa-slicer.
Date: Sat, 24 Jul 2021 00:08:03 +0300
* gnu/packages/engineering.scm (prusa-slicer): New variable.
---
 gnu/packages/engineering.scm | 97 ++++++++++++++++++++++++++++++++++++
 1 file changed, 97 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index eec12814ff..d88520a306 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -24,6 +24,7 @@
 ;;; Copyright © 2021 qblade <qblade <at> protonmail.com>
 ;;; Copyright © 2021 Gerd Heber <gerd.heber <at> gmail.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv <at> posteo.net>
+;;; Copyright © 2021 Ivan Gankevich <i.gankevich <at> spbu.ru>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -95,6 +96,7 @@
   #:use-module (gnu packages image-processing)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages libevent)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)               ;FIXME: for pcb
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages m4)
@@ -2924,3 +2926,98 @@ a process.")
     (description "The library provides functionality for shape modelling,
 visualization, matrix manipulation.")
     (license (list license:gpl3 license:mpl2.0))))
+
+(define-public prusa-slicer
+  (package
+    (name "prusa-slicer")
+    (version "2.3.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri
+          (git-reference
+            (url "https://github.com/prusa3d/PrusaSlicer")
+            (commit (string-append "version_" version))))
+        (file-name (git-file-name name version))
+        (sha256 (base32 "0w0synqi3iz9aigsgv6x1c6sg123fasbx19h4w3ic1l48r8qmpwm"))))
+    (build-system cmake-build-system)
+    (arguments
+      `(#:configure-flags
+        '("-DSLIC3R_FHS=1" ;; Use The Filesystem Hierarchy Standard.
+          "-DSLIC3R_WX_STABLE=1") ;; Use wxWidgets 3.0.x.x to prevent GUI crashes.
+        #:phases
+        (modify-phases %standard-phases
+          ;; CMake is unable to find headers from glib, pango and gtk+
+          ;; when compiling src/slic3r. Here we add them via environment variables.
+          (add-before 'configure 'add-glib-pango-gtk+
+            (lambda _
+              (use-modules
+                (ice-9 popen)
+                (ice-9 textual-ports))
+              (define (append-flags name flags)
+                (define old-value (getenv name))
+                (setenv name (if old-value (string-append old-value " " flags) flags)))
+              (define (pkg-config args)
+                (let* ((port (open-input-pipe (string-join (cons "pkg-config" args) " ")))
+                       (content (string-trim-both (get-string-all port))))
+                  (close-pipe port)
+                  content))
+              (define deps '("glib-2.0" "pango" "gtk+-2.0" "hidapi-hidraw"))
+              (define cflags (pkg-config (cons "--cflags" deps)))
+              (define ld-flags (pkg-config (cons "--libs" deps)))
+              (define libigl (assoc-ref %build-inputs "libigl"))
+              (append-flags "CXXFLAGS" cflags)
+              (append-flags "CFLAGS" cflags)
+              (append-flags "LDFLAGS" ld-flags)
+              (append-flags "CFLAGS" (string-append "-I" libigl "/include"))
+              (append-flags "LDFLAGS" (string-append "-L" libigl "/lib"))))
+          (add-before 'configure 'unbundle-3d-party-libraries
+            ;; Prusa slicer bundles a lot of dependencies in src/ directory.
+            ;; Most of them contain prusa-specific modifications (e.g. avrdude),
+            ;; but others do not. Here we replace the latter with Guix packages.
+            (lambda _
+              (delete-file-recursively "src/hidapi")
+              (delete-file-recursively "src/eigen")
+              (delete-file-recursively "src/libigl/igl")
+              (substitute* "src/CMakeLists.txt"
+                (("add_subdirectory\\(libigl\\)" all)
+                 (string-append
+                   all "\ninclude_directories(libigl INTERFACE libigl::core)"))
+                (("add_subdirectory\\(hidapi\\)") "")
+                (("include_directories\\(hidapi/include\\)") ""))
+              ;; Do not link with bundled hidapi library.
+              (substitute* "src/slic3r/CMakeLists.txt"
+                (("\\bhidapi\\b") "")))))))
+    (native-inputs
+      `(("pkg-config" ,pkg-config)))
+    (inputs
+      `(("boost" ,boost)
+        ("libigl" ,libigl)
+        ("tbb" ,tbb)
+        ("curl" ,curl)
+        ("zlib" ,zlib)
+        ("eigen" ,eigen)
+        ("expat" ,expat)
+        ("mesa" ,mesa)
+        ("cereal" ,cereal)
+        ("nlopt" ,nlopt)
+        ("openvdb" ,openvdb)
+        ("ilmbase" ,ilmbase)
+        ("cgal" ,cgal)
+        ("hidapi" ,hidapi)
+        ;;("wxwidgets" ,wxwidgets-gtk2-3.1) ;; crashes when adding support enforcers
+        ("wxwidgets" ,wxwidgets-gtk2)
+        ("glew" ,glew)
+        ("udev" ,eudev)
+        ("gmp" ,gmp)
+        ("mpfr" ,mpfr)
+        ("libpng" ,libpng)
+        ("dbus" ,dbus)
+        ("glib" ,glib)
+        ("pango" ,pango)
+        ("gtk" ,gtk+-2)))
+    (home-page "https://www.prusa3d.com/prusaslicer/")
+    (synopsis "G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)")
+    (description "PrusaSlicer takes 3D models (STL, OBJ, AMF) and converts them into
+G-code instructions for FFF printers or PNG layers for mSLA 3D printers.")
+    (license license:agpl3)))
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Sat, 18 Sep 2021 15:54:01 GMT) Full text and rfc822 format available.

Message #14 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: "49713 <at> debbugs.gnu.org" <49713 <at> debbugs.gnu.org>
Subject: Patches work, how to upstream them
Date: Sat, 18 Sep 2021 15:53:30 +0000
Hi Ivan,

the patches you created work. Is there something else neccessary to upstream them?

Thanks very much!

Regards
Petr




Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Sat, 18 Sep 2021 17:14:02 GMT) Full text and rfc822 format available.

Message #17 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Ivan Gankevich <i.gankevich <at> spbu.ru>, 49713 <at> debbugs.gnu.org
Subject: Re: [PATCH 1/3] gnu: cereal: Use cmake to build and install the
 library.
Date: Sat, 18 Sep 2021 19:13:12 +0200
Hi,

Am Samstag, den 24.07.2021, 00:00 +0300 schrieb Ivan Gankevich:
> Hello,
> 
> this series of patches adds Prusa Slicer. I had to change "cereal"
> package definition to use cmake, otherwise "prusa-slicer" failed
> to find the library. Also, I added "libigl" that is a dependency
> of "prusa-slicer".
> 
> gnu/packages/serialization.scm (cereal): Use cmake.
> 
> * Replace manual build and installation with standard cmake.
>   The main reason to do that is to get "cereal-config.cmake"
>   file that is used to find the library in other projects.
> ---
There are already two direct dependents of cereal.  Do those still
build?
> 
>  gnu/packages/serialization.scm | 39 ++++++++++++------------------
> ----
>  1 file changed, 13 insertions(+), 26 deletions(-)
> 
> diff --git a/gnu/packages/serialization.scm
> b/gnu/packages/serialization.scm
> index 8f292ae408..9c34da62af 100644
> --- a/gnu/packages/serialization.scm
> +++ b/gnu/packages/serialization.scm
> @@ -141,32 +141,19 @@ implement RPC protocols.")
>           "0hc8wh9dwpc1w1zf5lfss4vg5hmgpblqxbrpp1rggicpx9ar831p"))))
>      (build-system cmake-build-system)
>      (arguments
> -     `(;; The only included tests are portability tests requiring
> -       ;; cross-compilation and boost.  Since we are building cereal
> on more
> -       ;; platforms anyway, there is no compelling reason to build
> the tests.
> -       #:tests? #f
> -       #:out-of-source? #f
> -       #:phases
> -       (modify-phases %standard-phases
> -         (delete 'configure)
> -         (replace 'build
> -          (lambda _
> -            (substitute* "doc/doxygen.in"
> -              (("@CMAKE_CURRENT_BINARY_DIR@") ".")
> -              (("@CMAKE_CURRENT_SOURCE_DIR@") "."))
> -            (with-directory-excursion "doc"
> -              (invoke "doxygen" "doxygen.in"))))
> -         ;; There is no "install" target, so we have to provide our
> own
> -         ;; "install" phase.
> -         (replace 'install
> -          (lambda* (#:key outputs #:allow-other-keys)
> -            (let* ((out     (assoc-ref outputs "out"))
> -                   (doc     (string-append out
> "/share/cereal/docs"))
> -                   (include (string-append out "/include/cereal")))
> -              (mkdir-p doc)
> -              (mkdir-p include)
> -              (copy-recursively "include/cereal" include)
> -              (copy-recursively "doc/html" doc)))))))
> +      `(#:configure-flags (list "-DSKIP_PORTABILITY_TEST=ON")
> +        #:tests? #f
Never ever leave #:tests? #f uncommented.
> +        #:phases (modify-phases %standard-phases
> +                   (add-before 'configure 'skip-sandbox
> +                     (lambda _
> +                       (substitute* "CMakeLists.txt"
> +                         (("add_subdirectory\\(sandbox\\)") ""))))
> +                   (add-after 'install 'install-doc
> +                     (lambda _
> +                       (let ((doc (string-append %output
> "/share/doc/html")))
> +                         (invoke "make" "doc")
> +                         (mkdir-p doc)
> +                         (copy-recursively "doc/html" doc)))))))
>      (native-inputs
>       `(("doxygen" ,doxygen)))
>      (home-page "https://uscilab.github.io/cereal/")





Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Sat, 18 Sep 2021 17:18:02 GMT) Full text and rfc822 format available.

Message #20 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Ivan Gankevich <i.gankevich <at> spbu.ru>, 49713 <at> debbugs.gnu.org
Subject: Re: [PATCH 2/3] gnu: Add libigl.
Date: Sat, 18 Sep 2021 19:17:29 +0200
Hi,

Am Samstag, den 24.07.2021, 00:07 +0300 schrieb Ivan Gankevich:
> * gnu/packages/engineering.scm (libigl): New variable.
> ---
>  gnu/packages/engineering.scm | 62
> ++++++++++++++++++++++++++++++++++++
>  1 file changed, 62 insertions(+)
> 
> diff --git a/gnu/packages/engineering.scm
> b/gnu/packages/engineering.scm
> index fc932ddb28..eec12814ff 100644
> --- a/gnu/packages/engineering.scm
> +++ b/gnu/packages/engineering.scm
> @@ -2862,3 +2862,65 @@ for hooking Linux system calls in user
> space.  This is achieved by
>  hot-patching the machine code of the standard C library in the
> memory of
>  a process.")
>        (license license:bsd-2))))
> +
> +(define-public libigl
> +  (package
> +    (name "libigl")
> +    (version "2.3.0")
> +    (source
> +      (origin
> +        (method git-fetch)
> +        (uri (git-reference
> +               (url "https://github.com/libigl/libigl")
> +               (commit (string-append "v" version))))
> +        (file-name (git-file-name name version))
> +        (sha256
> +          (base32
> +            "004a22ifq2vibgkgvrlyihqimpsfizvq5l448204kwfg3lkycajj"))
> ))
> +    (build-system cmake-build-system)
> +    (arguments
> +      `(#:configure-flags
> +        (list "-DLIBIGL_USE_STATIC_LIBRARY=OFF"
> +              "-DLIBIGL_BUILD_TESTS=OFF" ;; tests need to download
> test data
Can we provide test data as input?
> +              "-DLIBIGL_BUILD_TUTORIALS=OFF"
> +              "-DLIBIGL_EXPORT_TARGETS=ON"
> +              "-DLIBIGL_WITH_CGAL=ON"
> +              "-DLIBIGL_WITH_COMISO=OFF"
> +              "-DLIBIGL_WITH_CORK=OFF"
> +              "-DLIBIGL_WITH_EMBREE=OFF"
> +              "-DLIBIGL_WITH_MATLAB=OFF"
> +              "-DLIBIGL_WITH_MOSEK=OFF"
> +              "-DLIBIGL_WITH_OPENGL=OFF"
> +              "-DLIBIGL_WITH_OPENGL_GLFW=OFF"
> +              "-DLIBIGL_WITH_OPENGL_GLFW_IMGUI=OFF"
> +              "-DLIBIGL_WITH_PNG=OFF"
> +              "-DLIBIGL_WITH_TETGEN=OFF"
> +              "-DLIBIGL_WITH_TRIANGLE=OFF"
> +              "-DLIBIGL_WITH_PREDICATES=OFF"
> +              "-DLIBIGL_WITH_XML=OFF")
In Guix we prefer to build packages as feature-complete as possible. 
Obviously MATLAB won't work unless they also accept octave, but you
might want to at least enable some of the low-hanging fruits such as
XML or OpenGL.  If it's about having a minimal package, simply provide
a -minimal variant as well.
> +        #:tests? #f
Don't leave #:tests? #f uncommented.
> +        #:phases
> +        (modify-phases %standard-phases
> +          (add-before 'configure 'do-not-download-dependencies
> +            (lambda _
> +              (substitute* "cmake/libigl.cmake"
> +                (("if\\(NOT TARGET Eigen3::Eigen\\)" all)
> +                 (string-append "find_package(Eigen3 CONFIG
> REQUIRED)\n" all))
> +                (("if\\(NOT TARGET CGAL::CGAL\\)" all)
> +                 (string-append "find_package(CGAL CONFIG COMPONENTS
> Core)\n" all)))))
> +          (add-after 'install 'install-all-subdirs
> +            (lambda _
> +              (copy-recursively
> +                "../source/include"
> +                (string-append (assoc-ref %outputs "out")
> "/include")))))))
> +    (inputs
> +      `(("eigen" ,eigen)
> +        ("cgal" ,cgal)
> +        ("gmp" ,gmp)
> +        ("mpfr" ,mpfr)
> +        ("boost" ,boost)))
> +    (home-page "https://libigl.github.io/")
> +    (synopsis "Simple C++ geometry processing library")
> +    (description "The library provides functionality for shape
> modelling,
> +visualization, matrix manipulation.")
s/The/This/ ?
> +    (license (list license:gpl3 license:mpl2.0))))

Regards





Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Sat, 18 Sep 2021 17:27:02 GMT) Full text and rfc822 format available.

Message #23 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Ivan Gankevich <i.gankevich <at> spbu.ru>, 49713 <at> debbugs.gnu.org
Subject: Re: [PATCH 3/3] gnu: Add prusa-slicer.
Date: Sat, 18 Sep 2021 19:26:31 +0200
Hi,

Am Samstag, den 24.07.2021, 00:08 +0300 schrieb Ivan Gankevich:
> * gnu/packages/engineering.scm (prusa-slicer): New variable.
> ---
>  gnu/packages/engineering.scm | 97
> ++++++++++++++++++++++++++++++++++++
>  1 file changed, 97 insertions(+)
> 
> diff --git a/gnu/packages/engineering.scm
> b/gnu/packages/engineering.scm
> index eec12814ff..d88520a306 100644
> --- a/gnu/packages/engineering.scm
> +++ b/gnu/packages/engineering.scm
> @@ -24,6 +24,7 @@
>  ;;; Copyright © 2021 qblade <qblade <at> protonmail.com>
>  ;;; Copyright © 2021 Gerd Heber <gerd.heber <at> gmail.com>
>  ;;; Copyright © 2021 Guillaume Le Vaillant <glv <at> posteo.net>
> +;;; Copyright © 2021 Ivan Gankevich <i.gankevich <at> spbu.ru>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -95,6 +96,7 @@
>    #:use-module (gnu packages image-processing)
>    #:use-module (gnu packages imagemagick)
>    #:use-module (gnu packages libevent)
> +  #:use-module (gnu packages libusb)
>    #:use-module (gnu packages linux)               ;FIXME: for pcb
>    #:use-module (gnu packages lisp)
>    #:use-module (gnu packages m4)
> @@ -2924,3 +2926,98 @@ a process.")
>      (description "The library provides functionality for shape
> modelling,
>  visualization, matrix manipulation.")
>      (license (list license:gpl3 license:mpl2.0))))
> +
> +(define-public prusa-slicer
> +  (package
> +    (name "prusa-slicer")
> +    (version "2.3.3")
> +    (source
> +      (origin
> +        (method git-fetch)
> +        (uri
> +          (git-reference
> +            (url "https://github.com/prusa3d/PrusaSlicer")
> +            (commit (string-append "version_" version))))
> +        (file-name (git-file-name name version))
> +        (sha256 (base32
> "0w0synqi3iz9aigsgv6x1c6sg123fasbx19h4w3ic1l48r8qmpwm"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +      `(#:configure-flags
> +        '("-DSLIC3R_FHS=1" ;; Use The Filesystem Hierarchy Standard.
> +          "-DSLIC3R_WX_STABLE=1") ;; Use wxWidgets 3.0.x.x to
> prevent GUI crashes.
> +        #:phases
> +        (modify-phases %standard-phases
> +          ;; CMake is unable to find headers from glib, pango and
> gtk+
> +          ;; when compiling src/slic3r. Here we add them via
> environment variables.
> +          (add-before 'configure 'add-glib-pango-gtk+
> +            (lambda _
> +              (use-modules
> +                (ice-9 popen)
> +                (ice-9 textual-ports))
> +              (define (append-flags name flags)
> +                (define old-value (getenv name))
> +                (setenv name (if old-value (string-append old-value
> " " flags) flags)))
> +              (define (pkg-config args)
> +                (let* ((port (open-input-pipe (string-join (cons
> "pkg-config" args) " ")))
> +                       (content (string-trim-both (get-string-all
> port))))
> +                  (close-pipe port)
> +                  content))
> +              (define deps '("glib-2.0" "pango" "gtk+-2.0" "hidapi-
> hidraw"))
> +              (define cflags (pkg-config (cons "--cflags" deps)))
> +              (define ld-flags (pkg-config (cons "--libs" deps)))
> +              (define libigl (assoc-ref %build-inputs "libigl"))
> +              (append-flags "CXXFLAGS" cflags)
> +              (append-flags "CFLAGS" cflags)
> +              (append-flags "LDFLAGS" ld-flags)
> +              (append-flags "CFLAGS" (string-append "-I" libigl
> "/include"))
> +              (append-flags "LDFLAGS" (string-append "-L" libigl
> "/lib"))))
Upstream already appears to search for GTK+3 with their CMake setup. 
Perhaps that's why it doesn't find GTK+2?
> +          (add-before 'configure 'unbundle-3d-party-libraries
> +            ;; Prusa slicer bundles a lot of dependencies in src/
> directory.
> +            ;; Most of them contain prusa-specific modifications
> (e.g. avrdude),
> +            ;; but others do not. Here we replace the latter with
> Guix packages.
> +            (lambda _
> +              (delete-file-recursively "src/hidapi")
> +              (delete-file-recursively "src/eigen")
> +              (delete-file-recursively "src/libigl/igl")
> +              (substitute* "src/CMakeLists.txt"
> +                (("add_subdirectory\\(libigl\\)" all)
> +                 (string-append
> +                   all "\ninclude_directories(libigl INTERFACE
> libigl::core)"))
> +                (("add_subdirectory\\(hidapi\\)") "")
> +                (("include_directories\\(hidapi/include\\)") ""))
> +              ;; Do not link with bundled hidapi library.
> +              (substitute* "src/slic3r/CMakeLists.txt"
> +                (("\\bhidapi\\b") "")))))))
Unbundling should be done in the snippet rather than at build time.
> +    (native-inputs
> +      `(("pkg-config" ,pkg-config)))
> +    (inputs
> +      `(("boost" ,boost)
> +        ("libigl" ,libigl)
> +        ("tbb" ,tbb)
> +        ("curl" ,curl)
> +        ("zlib" ,zlib)
> +        ("eigen" ,eigen)
> +        ("expat" ,expat)
> +        ("mesa" ,mesa)
> +        ("cereal" ,cereal)
> +        ("nlopt" ,nlopt)
> +        ("openvdb" ,openvdb)
> +        ("ilmbase" ,ilmbase)
> +        ("cgal" ,cgal)
> +        ("hidapi" ,hidapi)
> +        ;;("wxwidgets" ,wxwidgets-gtk2-3.1) ;; crashes when adding
> support enforcers
> +        ("wxwidgets" ,wxwidgets-gtk2)
> +        ("glew" ,glew)
> +        ("udev" ,eudev)
> +        ("gmp" ,gmp)
> +        ("mpfr" ,mpfr)
> +        ("libpng" ,libpng)
> +        ("dbus" ,dbus)
> +        ("glib" ,glib)
> +        ("pango" ,pango)
> +        ("gtk" ,gtk+-2)))
Try sorting the inputs alphabetically, also w.r.t. gtk+-2, see above.
> +    (home-page "https://www.prusa3d.com/prusaslicer/")
> +    (synopsis "G-code generator for 3D printers (RepRap, Makerbot,
> Ultimaker etc.)")
> +    (description "PrusaSlicer takes 3D models (STL, OBJ, AMF) and
> converts them into
> +G-code instructions for FFF printers or PNG layers for mSLA 3D
> printers.")
> +    (license license:agpl3)))

Regards





Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Sun, 19 Sep 2021 18:28:02 GMT) Full text and rfc822 format available.

Message #26 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Gankevich <i.gankevich <at> spbu.ru>
To: 49713 <at> debbugs.gnu.org
Cc: Ivan Gankevich <i.gankevich <at> spbu.ru>
Subject: [PATCH 1/3 v2] gnu: cereal: Use cmake to build and install the
 library.
Date: Sun, 19 Sep 2021 21:26:47 +0300
* gnu/packages/serialization.scm (cereal): Use cmake to build and
  install the library.
---
 gnu/packages/serialization.scm | 38 +++++++++++-----------------------
 1 file changed, 12 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 0e79b7c89c..3263805c68 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -142,32 +142,18 @@ implement RPC protocols.")
          "0hc8wh9dwpc1w1zf5lfss4vg5hmgpblqxbrpp1rggicpx9ar831p"))))
     (build-system cmake-build-system)
     (arguments
-     `(;; The only included tests are portability tests requiring
-       ;; cross-compilation and boost.  Since we are building cereal on more
-       ;; platforms anyway, there is no compelling reason to build the tests.
-       #:tests? #f
-       #:out-of-source? #f
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'build
-          (lambda _
-            (substitute* "doc/doxygen.in"
-              (("@CMAKE_CURRENT_BINARY_DIR@") ".")
-              (("@CMAKE_CURRENT_SOURCE_DIR@") "."))
-            (with-directory-excursion "doc"
-              (invoke "doxygen" "doxygen.in"))))
-         ;; There is no "install" target, so we have to provide our own
-         ;; "install" phase.
-         (replace 'install
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let* ((out     (assoc-ref outputs "out"))
-                   (doc     (string-append out "/share/cereal/docs"))
-                   (include (string-append out "/include/cereal")))
-              (mkdir-p doc)
-              (mkdir-p include)
-              (copy-recursively "include/cereal" include)
-              (copy-recursively "doc/html" doc)))))))
+      `(#:configure-flags (list "-DSKIP_PORTABILITY_TEST=ON")
+        #:phases (modify-phases %standard-phases
+                   (add-before 'configure 'skip-sandbox
+                     (lambda _
+                       (substitute* "CMakeLists.txt"
+                         (("add_subdirectory\\(sandbox\\)") ""))))
+                   (add-after 'install 'install-doc
+                     (lambda _
+                       (let ((doc (string-append %output "/share/doc/html")))
+                         (invoke "make" "doc")
+                         (mkdir-p doc)
+                         (copy-recursively "doc/html" doc)))))))
     (native-inputs
      `(("doxygen" ,doxygen)))
     (home-page "https://uscilab.github.io/cereal/")
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Sun, 19 Sep 2021 18:29:01 GMT) Full text and rfc822 format available.

Message #29 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Gankevich <i.gankevich <at> spbu.ru>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: 49713 <at> debbugs.gnu.org
Subject: Re: [PATCH 1/3] gnu: cereal: Use cmake to build and install the
 library.
Date: Sun, 19 Sep 2021 21:27:58 +0300
>There are already two direct dependents of cereal.  Do those still
>build?

Hello.

I’ve successfully built “salmon” and “seqan” with this patch.


>Never ever leave #:tests? #f uncommented.

Removed this line. The tests work fine.


I’ve submitted new version of this patch with tests.
Thanks for the corrections!


Regards,
Ivan




Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Sun, 19 Sep 2021 20:20:01 GMT) Full text and rfc822 format available.

Message #32 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Gankevich <i.gankevich <at> spbu.ru>
To: 49713 <at> debbugs.gnu.org
Cc: Ivan Gankevich <i.gankevich <at> spbu.ru>
Subject: [PATCH 2/3 v2] gnu: Add libigl.
Date: Sun, 19 Sep 2021 23:18:32 +0300
* gnu/packages/engineering.scm (libigl): New variable.
---
 gnu/packages/engineering.scm | 88 ++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 46622f3a1f..2c22cc3278 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -2863,3 +2863,91 @@ for hooking Linux system calls in user space.  This is achieved by
 hot-patching the machine code of the standard C library in the memory of
 a process.")
       (license license:bsd-2))))
+
+(define-public libigl
+  (package
+    (name "libigl")
+    (version "2.3.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/libigl/libigl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "004a22ifq2vibgkgvrlyihqimpsfizvq5l448204kwfg3lkycajj"))))
+    (build-system cmake-build-system)
+    (arguments
+      `(#:configure-flags
+        (list "-DLIBIGL_USE_STATIC_LIBRARY=OFF"
+              "-DLIBIGL_BUILD_TESTS=ON"
+              "-DLIBIGL_BUILD_TUTORIALS=OFF"
+              "-DLIBIGL_EXPORT_TARGETS=ON"
+              "-DLIBIGL_WITH_CGAL=ON"
+              "-DLIBIGL_WITH_COMISO=OFF"
+              "-DLIBIGL_WITH_CORK=OFF"
+              "-DLIBIGL_WITH_EMBREE=OFF"
+              "-DLIBIGL_WITH_MATLAB=OFF"
+              "-DLIBIGL_WITH_MOSEK=OFF"
+              "-DLIBIGL_WITH_OPENGL=OFF"
+              "-DLIBIGL_WITH_OPENGL_GLFW=OFF"
+              "-DLIBIGL_WITH_OPENGL_GLFW_IMGUI=OFF"
+              "-DLIBIGL_WITH_PNG=OFF"
+              "-DLIBIGL_WITH_TETGEN=OFF"
+              "-DLIBIGL_WITH_TRIANGLE=OFF"
+              "-DLIBIGL_WITH_PREDICATES=OFF"
+              "-DLIBIGL_WITH_XML=ON")
+        #:phases
+        (modify-phases %standard-phases
+          (add-before 'configure 'do-not-download-dependencies
+            (lambda _
+              (setenv "HOME" (getcwd)) ;; cmake needs this to export modules
+              (substitute* "cmake/libigl.cmake"
+                (("if\\(NOT TARGET Eigen3::Eigen\\)" all)
+                 (string-append "find_package(Eigen3 CONFIG REQUIRED)\n" all))
+                (("if\\(NOT TARGET CGAL::CGAL\\)" all)
+                 (string-append "find_package(CGAL CONFIG COMPONENTS Core)\n" all))
+                (("if\\(NOT TARGET tinyxml2\\)" all)
+                 (string-append "find_package(tinyxml2 CONFIG REQUIRED)\n"
+                                "if (NOT TARGET tinyxml2::tinyxml2)"))
+                )
+              (substitute* "tests/CMakeLists.txt"
+                (("igl_download_test_data\\(\\)") "")
+                (("set\\(IGL_TEST_DATA.*")
+                 (format #f "set(IGL_TEST_DATA ~a)\n"
+                         (assoc-ref %build-inputs "libigl-test-data")))
+                (("igl_download_catch2\\(\\)") "find_package(Catch2 CONFIG REQUIRED)")
+                (("list\\(APPEND CMAKE_MODULE_PATH \\$\\{LIBIGL_EXTERNAL\\}/catch2/contrib\\)")
+                 "")
+                (("add_subdirectory\\(\\$\\{LIBIGL_EXTERNAL\\}/catch2 catch2\\)") ""))))
+          (add-after 'install 'install-all-subdirs
+            (lambda _
+              (copy-recursively
+                "../source/include"
+                (string-append (assoc-ref %outputs "out") "/include")))))))
+    (inputs
+      `(("eigen" ,eigen)
+        ("gmp" ,gmp)
+        ("mpfr" ,mpfr)
+        ("boost" ,boost)))
+    (native-inputs
+      `(("cgal" ,cgal)
+        ("tinyxml2" ,tinyxml2)
+        ("catch2" ,catch-framework2)
+        ("libigl-test-data"
+         ,(origin
+            (method git-fetch)
+            (uri (git-reference
+                   (url "https://github.com/libigl/libigl-tests-data")
+                   ;; This commit should be updated for each version
+                   ;; from "cmake/LibiglDownloadExternal.cmake".
+                   (commit "19cedf96d70702d8b3a83eb27934780c542356fe")))
+            (file-name (git-file-name "libigl-test-data" version))
+            (sha256 (base32 "1wxglrxw74xw4a4jmmjpm8719f3mnlbxbwygjb4ddfixxxyya4i2"))))))
+    (home-page "https://libigl.github.io/")
+    (synopsis "Simple C++ geometry processing library")
+    (description "This library provides functionality for shape modelling,
+visualization, matrix manipulation.")
+    (license (list license:gpl3 license:mpl2.0))))
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Sun, 19 Sep 2021 20:20:01 GMT) Full text and rfc822 format available.

Message #35 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Gankevich <i.gankevich <at> spbu.ru>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: 49713 <at> debbugs.gnu.org
Subject: Re: [PATCH 2/3] gnu: Add libigl.
Date: Sun, 19 Sep 2021 23:18:54 +0300
>Can we provide test data as input?

I’ve added test data and enabled tests.


>> +              "-DLIBIGL_BUILD_TUTORIALS=OFF"
>> +              "-DLIBIGL_EXPORT_TARGETS=ON"
>> +              "-DLIBIGL_WITH_CGAL=ON"
>> +              "-DLIBIGL_WITH_COMISO=OFF"
>> +              "-DLIBIGL_WITH_CORK=OFF"
>> +              "-DLIBIGL_WITH_EMBREE=OFF"
>> +              "-DLIBIGL_WITH_MATLAB=OFF"
>> +              "-DLIBIGL_WITH_MOSEK=OFF"
>> +              "-DLIBIGL_WITH_OPENGL=OFF"
>> +              "-DLIBIGL_WITH_OPENGL_GLFW=OFF"
>> +              "-DLIBIGL_WITH_OPENGL_GLFW_IMGUI=OFF"
>> +              "-DLIBIGL_WITH_PNG=OFF"
>> +              "-DLIBIGL_WITH_TETGEN=OFF"
>> +              "-DLIBIGL_WITH_TRIANGLE=OFF"
>> +              "-DLIBIGL_WITH_PREDICATES=OFF"
>> +              "-DLIBIGL_WITH_XML=OFF")
>In Guix we prefer to build packages as feature-complete as possible.
>Obviously MATLAB won't work unless they also accept octave, but you
>might want to at least enable some of the low-hanging fruits such as
>XML or OpenGL.  If it's about having a minimal package, simply provide
>a -minimal variant as well.

This library is header-only. All the dependencies from this list are used in the
tests. Headers that use these dependencies are installed no matter which
dependenies are “ON” in this list. I’ve added XML. Adding other dependencies
would require rewriting most of “cmake/libigl.cmake” file, because the
authors of the package like to download and build all the dependencies manually.


>> +        #:tests? #f
>Don't leave #:tests? #f uncommented.

Enabled tests.


>> +    (description "The library provides functionality for shape
>> modelling,
>> +visualization, matrix manipulation.")
>s/The/This/ ?

Fixed!


Thanks for your corrections. I’ve sent the updated version of this patch via
“git send-email”.


Regards,
Ivan




Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Sun, 19 Sep 2021 21:40:01 GMT) Full text and rfc822 format available.

Message #38 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Gankevich <i.gankevich <at> spbu.ru>
To: 49713 <at> debbugs.gnu.org
Cc: Ivan Gankevich <i.gankevich <at> spbu.ru>
Subject: [PATCH 3/3 v2] gnu: Add prusa-slicer.
Date: Mon, 20 Sep 2021 00:38:40 +0300
* gnu/packages/engineering.scm (prusa-slicer): New variable.
---
 gnu/packages/engineering.scm | 83 ++++++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 2c22cc3278..3f7d087269 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -24,6 +24,7 @@
 ;;; Copyright © 2021 qblade <qblade <at> protonmail.com>
 ;;; Copyright © 2021 Gerd Heber <gerd.heber <at> gmail.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv <at> posteo.net>
+;;; Copyright © 2021 Ivan Gankevich <i.gankevich <at> spbu.ru>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -95,6 +96,7 @@
   #:use-module (gnu packages image-processing)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages libevent)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)               ;FIXME: for pcb
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages m4)
@@ -2951,3 +2953,84 @@ a process.")
     (description "This library provides functionality for shape modelling,
 visualization, matrix manipulation.")
     (license (list license:gpl3 license:mpl2.0))))
+
+(define-public prusa-slicer
+  (package
+    (name "prusa-slicer")
+    (version "2.3.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri
+          (git-reference
+            (url "https://github.com/prusa3d/PrusaSlicer")
+            (commit (string-append "version_" version))))
+        (file-name (git-file-name name version))
+        (sha256 (base32 "0w0synqi3iz9aigsgv6x1c6sg123fasbx19h4w3ic1l48r8qmpwm"))
+        (modules '((guix build utils)))
+        (snippet
+          '(begin
+             ;; Remove bundled libraries that were not modified by Prusa Slicer developers.
+             (delete-file-recursively "src/hidapi")
+             (delete-file-recursively "src/eigen")
+             (delete-file-recursively "src/libigl/igl")))))
+    (build-system cmake-build-system)
+    (arguments
+      `(#:configure-flags
+        '("-DSLIC3R_FHS=1" ;; Use The Filesystem Hierarchy Standard.
+          "-DSLIC3R_GTK=3" ;; Use GTK+
+          "-DSLIC3R_WX_STABLE=1") ;; Use wxWidgets 3.0.x.x to prevent GUI crashes.
+        #:phases
+        (modify-phases %standard-phases
+          (add-before 'configure 'unbundle-3d-party-libraries
+            ;; Prusa slicer bundles a lot of dependencies in src/ directory.
+            ;; Most of them contain prusa-specific modifications (e.g. avrdude),
+            ;; but others do not. Here we replace the latter with Guix packages.
+            (lambda _
+              (substitute* "src/CMakeLists.txt"
+                (("add_subdirectory\\(libigl\\)" all)
+                 (string-append
+                   all "\ninclude_directories(libigl INTERFACE libigl::core)"))
+                (("add_subdirectory\\(hidapi\\)")
+                 "pkg_check_modules(HIDAPI REQUIRED hidapi-hidraw)")
+                (("include_directories\\(hidapi/include\\)")
+                 "include_directories()"))
+              ;; Do not link with bundled hidapi library.
+              (substitute* "src/slic3r/CMakeLists.txt"
+                (("add_library\\(libslic3r_gui.*" all)
+                 (string-append
+                   all
+                   "\ntarget_include_directories(libslic3r_gui PUBLIC ${HIDAPI_INCLUDE_DIRS})\n"))
+                (("\\bhidapi\\b") "${HIDAPI_LIBRARIES}")))))))
+    (native-inputs
+      `(("pkg-config" ,pkg-config)))
+    (inputs
+      `(("boost" ,boost)
+        ("cereal" ,cereal)
+        ("cgal" ,cgal)
+        ("curl" ,curl)
+        ("dbus" ,dbus)
+        ("eigen" ,eigen)
+        ("expat" ,expat)
+        ("glew" ,glew)
+        ("glib" ,glib)
+        ("gmp" ,gmp)
+        ("gtk" ,gtk+)
+        ("hidapi" ,hidapi)
+        ("ilmbase" ,ilmbase)
+        ("libigl" ,libigl)
+        ("libpng" ,libpng)
+        ("mesa" ,mesa)
+        ("mpfr" ,mpfr)
+        ("nlopt" ,nlopt)
+        ("openvdb" ,openvdb)
+        ("pango" ,pango)
+        ("tbb" ,tbb)
+        ("udev" ,eudev)
+        ("wxwidgets" ,wxwidgets)
+        ("zlib" ,zlib)))
+    (home-page "https://www.prusa3d.com/prusaslicer/")
+    (synopsis "G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)")
+    (description "PrusaSlicer takes 3D models (STL, OBJ, AMF) and converts them into
+G-code instructions for FFF printers or PNG layers for mSLA 3D printers.")
+    (license license:agpl3)))
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Sun, 19 Sep 2021 21:40:02 GMT) Full text and rfc822 format available.

Message #41 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Gankevich <i.gankevich <at> spbu.ru>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: 49713 <at> debbugs.gnu.org
Subject: Re: [PATCH 3/3] gnu: Add prusa-slicer.
Date: Mon, 20 Sep 2021 00:39:36 +0300
>> +          ;; CMake is unable to find headers from glib, pango and
>> gtk+
>> +          ;; when compiling src/slic3r. Here we add them via
>> environment variables.
>> +          (add-before 'configure 'add-glib-pango-gtk+
>Upstream already appears to search for GTK+3 with their CMake setup.
>Perhaps that's why it doesn't find GTK+2?

I changed GTK+2 to GTK+3 and removed the whole “add-glib-pango-gtk+” phase.


>> +          (add-before 'configure 'unbundle-3d-party-libraries
>> +            ;; Prusa slicer bundles a lot of dependencies in src/
>> directory.
>> +            ;; Most of them contain prusa-specific modifications
>> (e.g. avrdude),
>> +            ;; but others do not. Here we replace the latter with
>> Guix packages.
>> +            (lambda _
>> +              (delete-file-recursively "src/hidapi")
>> +              (delete-file-recursively "src/eigen")
>> +              (delete-file-recursively "src/libigl/igl")
>> +              (substitute* "src/CMakeLists.txt"
>> +                (("add_subdirectory\\(libigl\\)" all)
>> +                 (string-append
>> +                   all "\ninclude_directories(libigl INTERFACE
>> libigl::core)"))
>> +                (("add_subdirectory\\(hidapi\\)") "")
>> +                (("include_directories\\(hidapi/include\\)") ""))
>> +              ;; Do not link with bundled hidapi library.
>> +              (substitute* "src/slic3r/CMakeLists.txt"
>> +                (("\\bhidapi\\b") "")))))))
>Unbundling should be done in the snippet rather than at build time.

Moved deletion of directories to the snippet.


>Try sorting the inputs alphabetically, also w.r.t. gtk+-2, see above.

Now its is sorted and no more GTK+2.


Thanks for your corrections. I’ve sent the updated version of this patch via
“git send-email”.


Regards,
Ivan




Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Sun, 19 Sep 2021 21:54:01 GMT) Full text and rfc822 format available.

Message #44 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Ivan Gankevich <i.gankevich <at> spbu.ru>
Cc: 49713 <at> debbugs.gnu.org
Subject: Re: [PATCH 3/3] gnu: Add prusa-slicer.
Date: Sun, 19 Sep 2021 23:53:15 +0200
Am Montag, den 20.09.2021, 00:39 +0300 schrieb Ivan Gankevich:
> > Unbundling should be done in the snippet rather than at build time.
> 
> Moved deletion of directories to the snippet.
I'd argue that fixing the CMakeLists also falls into snippet territory,
as it's directly related to unbundling.

Am Sonntag, den 19.09.2021, 23:18 +0300 schrieb Ivan Gankevich:
> This library is header-only. All the dependencies from this list are
> used in the tests. Headers that use these dependencies are installed
> no matter which dependenies are “ON” in this list. I’ve added XML.
> Adding other dependencies would require rewriting most of
> “cmake/libigl.cmake” file, because the authors of the package like to
> download and build all the dependencies manually.
Could this be done with substitute* as for the other packages?  If not,
we should group those options under a sufficiently explanatory comment.
Also, there's little need to explicitly enable things that would
already be enabled by default, let's keep the list of flags small and
understandable :)

When you send v3, please do all patches in one go and also specify --
reroll-count, as that's easier on mumi.

Thanks





Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Mon, 20 Sep 2021 22:17:01 GMT) Full text and rfc822 format available.

Message #47 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Gankevich <i.gankevich <at> spbu.ru>
To: 49713 <at> debbugs.gnu.org
Cc: Ivan Gankevich <i.gankevich <at> spbu.ru>
Subject: [PATCH v3 1/3] gnu: cereal: Use cmake to build and install the
 library.
Date: Tue, 21 Sep 2021 01:15:48 +0300
* gnu/packages/serialization.scm (cereal): Use cmake to build and
  install the library.
---
 gnu/packages/serialization.scm | 38 +++++++++++-----------------------
 1 file changed, 12 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 0e79b7c89c..3263805c68 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -142,32 +142,18 @@ implement RPC protocols.")
          "0hc8wh9dwpc1w1zf5lfss4vg5hmgpblqxbrpp1rggicpx9ar831p"))))
     (build-system cmake-build-system)
     (arguments
-     `(;; The only included tests are portability tests requiring
-       ;; cross-compilation and boost.  Since we are building cereal on more
-       ;; platforms anyway, there is no compelling reason to build the tests.
-       #:tests? #f
-       #:out-of-source? #f
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'build
-          (lambda _
-            (substitute* "doc/doxygen.in"
-              (("@CMAKE_CURRENT_BINARY_DIR@") ".")
-              (("@CMAKE_CURRENT_SOURCE_DIR@") "."))
-            (with-directory-excursion "doc"
-              (invoke "doxygen" "doxygen.in"))))
-         ;; There is no "install" target, so we have to provide our own
-         ;; "install" phase.
-         (replace 'install
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let* ((out     (assoc-ref outputs "out"))
-                   (doc     (string-append out "/share/cereal/docs"))
-                   (include (string-append out "/include/cereal")))
-              (mkdir-p doc)
-              (mkdir-p include)
-              (copy-recursively "include/cereal" include)
-              (copy-recursively "doc/html" doc)))))))
+      `(#:configure-flags (list "-DSKIP_PORTABILITY_TEST=ON")
+        #:phases (modify-phases %standard-phases
+                   (add-before 'configure 'skip-sandbox
+                     (lambda _
+                       (substitute* "CMakeLists.txt"
+                         (("add_subdirectory\\(sandbox\\)") ""))))
+                   (add-after 'install 'install-doc
+                     (lambda _
+                       (let ((doc (string-append %output "/share/doc/html")))
+                         (invoke "make" "doc")
+                         (mkdir-p doc)
+                         (copy-recursively "doc/html" doc)))))))
     (native-inputs
      `(("doxygen" ,doxygen)))
     (home-page "https://uscilab.github.io/cereal/")
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Mon, 20 Sep 2021 22:17:02 GMT) Full text and rfc822 format available.

Message #50 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Gankevich <i.gankevich <at> spbu.ru>
To: 49713 <at> debbugs.gnu.org
Cc: Ivan Gankevich <i.gankevich <at> spbu.ru>
Subject: [PATCH v3 2/3] gnu: Add libigl.
Date: Tue, 21 Sep 2021 01:15:50 +0300
* gnu/packages/engineering.scm (libigl): New variable.
---
 gnu/packages/engineering.scm | 139 +++++++++++++++++++++++++++++++++++
 1 file changed, 139 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 46622f3a1f..421a10292a 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -2863,3 +2863,142 @@ for hooking Linux system calls in user space.  This is achieved by
 hot-patching the machine code of the standard C library in the memory of
 a process.")
       (license license:bsd-2))))
+
+(define-public libigl
+  (package
+    (name "libigl")
+    (version "2.3.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/libigl/libigl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "004a22ifq2vibgkgvrlyihqimpsfizvq5l448204kwfg3lkycajj"))))
+    (build-system cmake-build-system)
+    (arguments
+      `(#:configure-flags
+        (list "-DLIBIGL_USE_STATIC_LIBRARY=OFF"
+              "-DLIBIGL_BUILD_TESTS=ON"
+              "-DLIBIGL_BUILD_TUTORIALS=OFF"
+              "-DLIBIGL_EXPORT_TARGETS=ON"
+              ;; The following options disable tests for the corresponding libraries.
+              ;; The options do not affect whether the libraries are linked to libigl or not,
+              ;; they are used for tests.
+              "-DLIBIGL_WITH_COMISO=OFF"
+              "-DLIBIGL_WITH_CORK=OFF"
+              "-DLIBIGL_WITH_MATLAB=OFF"
+              "-DLIBIGL_WITH_MOSEK=OFF"
+              "-DLIBIGL_WITH_TRIANGLE=OFF" ;; Undefined reference to "triangulate".
+              "-DLIBIGL_WITH_OPENGL_GLFW_IMGUI=OFF")
+        #:phases
+        (modify-phases %standard-phases
+          (add-before 'configure 'do-not-download-dependencies
+            (lambda _
+              (setenv "HOME" (getcwd)) ;; cmake needs this to export modules
+              (mkdir "external")
+              (copy-recursively (assoc-ref %build-inputs "libigl-glad") "external/glad")
+              (copy-recursively (assoc-ref %build-inputs "libigl-stb") "external/stb")
+              (copy-recursively (assoc-ref %build-inputs "libigl-tetgen") "external/tetgen")
+              (copy-recursively (assoc-ref %build-inputs "libigl-predicates") "external/predicates")
+              (substitute* "cmake/libigl.cmake"
+                (("if\\(NOT TARGET Eigen3::Eigen\\)" all)
+                 (string-append "find_package(Eigen3 CONFIG REQUIRED)\n" all))
+                (("if\\(NOT TARGET CGAL::CGAL\\)" all)
+                 (string-append "find_package(CGAL CONFIG COMPONENTS Core)\n" all))
+                (("if\\(NOT TARGET tinyxml2\\)" all)
+                 (string-append "find_package(tinyxml2 CONFIG REQUIRED)\n"
+                                "if (NOT TARGET tinyxml2::tinyxml2)"))
+                (("if\\(NOT TARGET embree\\)" all)
+                 (string-append "find_package(embree 3 CONFIG REQUIRED)\n" all))
+                (("if\\(NOT TARGET glfw\\)" all)
+                 (string-append "find_package(glfw3 CONFIG REQUIRED)\n" all))
+                (("igl_download_glad\\(\\)" all) "")
+                (("igl_download_stb\\(\\)" all) "")
+                (("igl_download_tetgen\\(\\)" all) "")
+                (("igl_download_triangle\\(\\)" all) "")
+                (("igl_download_predicates\\(\\)" all) ""))
+              (substitute* "tests/CMakeLists.txt"
+                (("igl_download_test_data\\(\\)") "")
+                (("set\\(IGL_TEST_DATA.*")
+                 (format #f "set(IGL_TEST_DATA ~a)\n"
+                         (assoc-ref %build-inputs "libigl-test-data")))
+                (("igl_download_catch2\\(\\)") "find_package(Catch2 CONFIG REQUIRED)")
+                (("list\\(APPEND CMAKE_MODULE_PATH \\$\\{LIBIGL_EXTERNAL\\}/catch2/contrib\\)")
+                 "")
+                (("add_subdirectory\\(\\$\\{LIBIGL_EXTERNAL\\}/catch2 catch2\\)") ""))))
+          (add-after 'install 'install-all-subdirs
+            (lambda _
+              (copy-recursively
+                "../source/include"
+                (string-append (assoc-ref %outputs "out") "/include")))))))
+    (inputs
+      `(("eigen" ,eigen)
+        ("gmp" ,gmp)
+        ("mpfr" ,mpfr)
+        ("boost" ,boost)))
+    (native-inputs
+      `(("catch2" ,catch-framework2)
+        ("cgal" ,cgal)
+        ("embree" ,embree)
+        ("mesa" ,mesa)
+        ("glfw" ,glfw)
+        ("tinyxml2" ,tinyxml2)
+        ("libigl-test-data"
+         ,(origin
+            (method git-fetch)
+            (uri (git-reference
+                   (url "https://github.com/libigl/libigl-tests-data")
+                   ;; This commit should be updated for each version
+                   ;; from "cmake/LibiglDownloadExternal.cmake".
+                   (commit "19cedf96d70702d8b3a83eb27934780c542356fe")))
+            (file-name (git-file-name "libigl-test-data" version))
+            (sha256 (base32 "1wxglrxw74xw4a4jmmjpm8719f3mnlbxbwygjb4ddfixxxyya4i2"))))
+        ("libigl-glad"
+         ,(origin
+            (method git-fetch)
+            (uri (git-reference
+                   (url "https://github.com/libigl/libigl-glad")
+                   ;; This commit should be updated for each version
+                   ;; from "cmake/LibiglDownloadExternal.cmake".
+                   (commit "09b4969c56779f7ddf8e6176ec1873184aec890f")))
+            (file-name (git-file-name "libigl-glad" version))
+            (sha256 (base32 "0rwrs7513ylp6gxv7crjzflapcg9p7x04nzfvywgl665vl53rawk"))))
+        ("libigl-stb"
+         ,(origin
+            (method git-fetch)
+            (uri (git-reference
+                   (url "https://github.com/libigl/libigl-stb.git")
+                   ;; This commit should be updated for each version
+                   ;; from "cmake/LibiglDownloadExternal.cmake".
+                   (commit "cd0fa3fcd90325c83be4d697b00214e029f94ca3")))
+            (file-name (git-file-name "libigl-stb" version))
+            (sha256 (base32 "0wwlb370z40y63ic3ny6q7lxibhixg2k1pjdkl4ymzv79zld28kj"))))
+        ("libigl-tetgen"
+         ,(origin
+            (method git-fetch)
+            (uri (git-reference
+                   (url "https://github.com/libigl/tetgen.git")
+                   ;; This commit should be updated for each version
+                   ;; from "cmake/LibiglDownloadExternal.cmake".
+                   (commit "4f3bfba3997f20aa1f96cfaff604313a8c2c85b6")))
+            (file-name (git-file-name "libigl-tetgen" version))
+            (sha256 (base32 "1k724syssw37py7kwmibk3sfwkkgyjyy7qkijnhn6rjm91g8qxsg"))))
+        ("libigl-predicates"
+         ,(origin
+            (method git-fetch)
+            (uri (git-reference
+                   (url "https://github.com/libigl/libigl-predicates.git")
+                   ;; This commit should be updated for each version
+                   ;; from "cmake/LibiglDownloadExternal.cmake".
+                   (commit "488242fa2b1f98a9c5bd1441297fb4a99a6a9ae4")))
+            (file-name (git-file-name "libigl-predicates" version))
+            (sha256 (base32 "13bd98g8lgcq37i3crj66433z09grnb2xjrcqpwqmyn147rp5wyh"))))))
+    (home-page "https://libigl.github.io/")
+    (synopsis "Simple C++ geometry processing library")
+    (description "This library provides functionality for shape modelling,
+visualization, matrix manipulation.")
+    (license (list license:gpl3 license:mpl2.0))))
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Mon, 20 Sep 2021 22:17:02 GMT) Full text and rfc822 format available.

Message #53 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Gankevich <i.gankevich <at> spbu.ru>
To: 49713 <at> debbugs.gnu.org
Cc: Ivan Gankevich <i.gankevich <at> spbu.ru>
Subject: [PATCH v3 3/3] gnu: Add prusa-slicer.
Date: Tue, 21 Sep 2021 01:15:52 +0300
* gnu/packages/engineering.scm (prusa-slicer): New variable.
---
 gnu/packages/engineering.scm | 79 ++++++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 421a10292a..c4183c0c71 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -24,6 +24,7 @@
 ;;; Copyright © 2021 qblade <qblade <at> protonmail.com>
 ;;; Copyright © 2021 Gerd Heber <gerd.heber <at> gmail.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv <at> posteo.net>
+;;; Copyright © 2021 Ivan Gankevich <i.gankevich <at> spbu.ru>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -95,6 +96,7 @@
   #:use-module (gnu packages image-processing)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages libevent)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)               ;FIXME: for pcb
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages m4)
@@ -3002,3 +3004,80 @@ a process.")
     (description "This library provides functionality for shape modelling,
 visualization, matrix manipulation.")
     (license (list license:gpl3 license:mpl2.0))))
+
+(define-public prusa-slicer
+  (package
+    (name "prusa-slicer")
+    (version "2.3.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri
+          (git-reference
+            (url "https://github.com/prusa3d/PrusaSlicer")
+            (commit (string-append "version_" version))))
+        (file-name (git-file-name name version))
+        (sha256 (base32 "0w0synqi3iz9aigsgv6x1c6sg123fasbx19h4w3ic1l48r8qmpwm"))
+        (modules '((guix build utils)))
+        (snippet
+          '(begin
+             ;; Prusa slicer bundles a lot of dependencies in src/ directory.
+             ;; Most of them contain prusa-specific modifications (e.g. avrdude),
+             ;; but others do not. Here we replace the latter with Guix packages.
+             ;; Remove bundled libraries that were not modified by Prusa Slicer developers.
+             (delete-file-recursively "src/hidapi")
+             (delete-file-recursively "src/eigen")
+             (delete-file-recursively "src/libigl/igl")
+             (substitute* "src/CMakeLists.txt"
+               (("add_subdirectory\\(libigl\\)" all)
+                (string-append
+                  all "\ninclude_directories(libigl INTERFACE libigl::core)"))
+               (("add_subdirectory\\(hidapi\\)")
+                "pkg_check_modules(HIDAPI REQUIRED hidapi-hidraw)")
+               (("include_directories\\(hidapi/include\\)")
+                "include_directories()"))
+             (substitute* "src/slic3r/CMakeLists.txt"
+               (("add_library\\(libslic3r_gui.*" all)
+                (string-append
+                  all
+                  "\ntarget_include_directories(libslic3r_gui PUBLIC ${HIDAPI_INCLUDE_DIRS})\n"))
+               (("\\bhidapi\\b") "${HIDAPI_LIBRARIES}"))))))
+    (build-system cmake-build-system)
+    (arguments
+      `(#:configure-flags
+        '("-DSLIC3R_FHS=1" ;; Use The Filesystem Hierarchy Standard.
+          "-DSLIC3R_GTK=3" ;; Use GTK+
+          ;; Use wxWidgets 3.0.x.x to prevent GUI crashes when adding support enforcers.
+          "-DSLIC3R_WX_STABLE=1")))
+    (native-inputs
+      `(("pkg-config" ,pkg-config)))
+    (inputs
+      `(("boost" ,boost)
+        ("cereal" ,cereal)
+        ("cgal" ,cgal)
+        ("curl" ,curl)
+        ("dbus" ,dbus)
+        ("eigen" ,eigen)
+        ("expat" ,expat)
+        ("glew" ,glew)
+        ("glib" ,glib)
+        ("gmp" ,gmp)
+        ("gtk" ,gtk+)
+        ("hidapi" ,hidapi)
+        ("ilmbase" ,ilmbase)
+        ("libigl" ,libigl)
+        ("libpng" ,libpng)
+        ("mesa" ,mesa)
+        ("mpfr" ,mpfr)
+        ("nlopt" ,nlopt)
+        ("openvdb" ,openvdb)
+        ("pango" ,pango)
+        ("tbb" ,tbb)
+        ("udev" ,eudev)
+        ("wxwidgets" ,wxwidgets)
+        ("zlib" ,zlib)))
+    (home-page "https://www.prusa3d.com/prusaslicer/")
+    (synopsis "G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)")
+    (description "PrusaSlicer takes 3D models (STL, OBJ, AMF) and converts them into
+G-code instructions for FFF printers or PNG layers for mSLA 3D printers.")
+    (license license:agpl3)))
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#49713; Package guix-patches. (Mon, 20 Sep 2021 22:18:02 GMT) Full text and rfc822 format available.

Message #56 received at 49713 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Gankevich <i.gankevich <at> spbu.ru>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: 49713 <at> debbugs.gnu.org
Subject: Re: [PATCH 3/3] gnu: Add prusa-slicer.
Date: Tue, 21 Sep 2021 01:17:46 +0300
>I'd argue that fixing the CMakeLists also falls into snippet territory,
>as it's directly related to unbundling.

Agreed. Moved the code to the snippet.


>Could this be done with substitute* as for the other packages?  If not,
>we should group those options under a sufficiently explanatory comment.
>Also, there's little need to explicitly enable things that would
>already be enabled by default, let's keep the list of flags small and
>understandable :)

Enabled all “low-hanging fruits” and added the comment explaning that
these are tests depedencies.


>When you send v3, please do all patches in one go and also specify --
>reroll-count, as that's easier on mumi.

I hope I did it right :-)


Regards,
Ivan




Reply sent to Liliana Marie Prikler <liliana.prikler <at> gmail.com>:
You have taken responsibility. (Tue, 21 Sep 2021 12:13:02 GMT) Full text and rfc822 format available.

Notification sent to Ivan Gankevich <i.gankevich <at> spbu.ru>:
bug acknowledged by developer. (Tue, 21 Sep 2021 12:13:02 GMT) Full text and rfc822 format available.

Message #61 received at 49713-done <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Ivan Gankevich <i.gankevich <at> spbu.ru>
Cc: 49713-done <at> debbugs.gnu.org
Subject: Re: [PATCH 3/3] gnu: Add prusa-slicer.
Date: Tue, 21 Sep 2021 14:12:31 +0200
Hi,

Am Dienstag, den 21.09.2021, 01:17 +0300 schrieb Ivan Gankevich:
> I hope I did it right :-)
I've pushed this now with some changes.  Apart from trivial indentation
changes and (list ...) -> '(...), I made all inputs to libigl regular
and fixed up the phases as follows:
- do-not-download-dependencies split into unpack-external and 
  patch-cmake
- install-all-subdirs dropped, instead patched cmake to install
  relevant headers.

Regards





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 20 Oct 2021 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 160 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.