Subject: Re: [bug#36352] [PATCH] gnu: Add solvespace.

From: swedebugia <[email-masked]>
Date: Tue, 25 Jun 2019 22:35:03 +0200

On 2019-06-24 14:27, Myles English wrote:
> * gnu/packages/game-development.scm (solvespace): New variable and
> dependencies on gnu package modules.
> ---
>   gnu/packages/engineering.scm | 70 ++++++++++++++++++++++++++++++++++++
>   1 file changed, 70 insertions(+)
> 
> diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
> index 7d48414889..7fc06a6730 100644
> --- a/gnu/packages/engineering.scm
> +++ b/gnu/packages/engineering.scm
> @@ -11,6 +11,7 @@
>   ;;; Copyright © 2018, 2019 Jonathan Brielmaier <[email-masked]>
>   ;;; Copyright © 2018, 2019 Arun Isaac <[email-masked]>
>   ;;; Copyright © 2019 Tim Stahel <[email-masked]>
> +;;; Copyright © 2019 Myles English <[email-masked]>
>   ;;;
>   ;;; This file is part of GNU Guix.
>   ;;;
> @@ -80,6 +81,7 @@
>     #:use-module (gnu packages python-xyz)
>     #:use-module (gnu packages qt)
>     #:use-module (gnu packages readline)
> +  #:use-module (gnu packages serialization)
>     #:use-module (gnu packages swig)
>     #:use-module (gnu packages tcl)
>     #:use-module (gnu packages texinfo)
> @@ -87,6 +89,8 @@
>     #:use-module (gnu packages tex)
>     #:use-module (gnu packages version-control)
>     #:use-module (gnu packages wxwidgets)
> +  #:use-module (gnu packages web)
> +  #:use-module (gnu packages xml)
>     #:use-module (gnu packages xorg))
>   
>   (define-public librecad
> @@ -2062,3 +2066,69 @@ purpose circuit simulator and can perform DC and transient analyses, fourier
>   analysis and AC analysis.  The engine is designed to do true mixed-mode
>   simulation.")
>       (license license:gpl3+)))
> +
> +(define-public solvespace-3
> +  (let ((commit "5df53fc59e7f31e265fabd4c15e6601bd3032833")
> +	(revision "1"))
> +    (package
> +      (name "solvespace")
> +      (version (git-version "3.0" revision commit))
> +      (source
> +       (origin
> +         (method git-fetch)
> +         (uri (git-reference
> +               (url "https://github.com/solvespace/solvespace.git")
> +               (commit commit)
> +               (recursive? #t)))

A stable release tarball is available on the release page it seems.
https://github.com/solvespace/solvespace/releases

> +         (sha256
> +          (base32
> +           "0kps2rgakdrbm9f6gwkb7za5ikkc4m6y2x162y3c53ixg5snmlr1"))
> +         (file-name (git-file-name name version))
> +         (modules '((guix build utils)))
> +         (snippet
> +          '(begin
> +             ;; delete some recursive submodules in order to use guix packages
> +             (delete-file-recursively "extlib/zlib")
> +             (delete-file-recursively "extlib/libpng")
> +             (delete-file-recursively "extlib/freetype")
> +             ;; pixman only needed for tests?
> +             (delete-file-recursively "extlib/pixman")
> +             (delete-file-recursively "extlib/cairo")
> +             (delete-file-recursively "extlib/flatbuffers")
> +             #t))))
> +      (build-system cmake-build-system)
> +      (arguments
> +       `(#:configure-flags
> +         (list "-DCMAKE_BUILD_TYPE=Release"
> +               (string-append
> +                "-DFLATC="
> +                (assoc-ref %build-inputs "flatbuffers") "/bin/flatc"))
> +         #:phases
> +         (modify-phases %standard-phases
> +           (add-after 'unpack 'set-git-commit-hash
> +             (lambda* (#:key inputs #:allow-other-keys)
> +               (substitute* "CMakeLists.txt"
> +                 (("include\\(GetGitCommitHash\\)")
> +                  "#include(GetGitCommitHash)")
> +                 (("\\# set\\(GIT_COMMIT_HASH
> +                                    0000000000000000000000000000000000000000\\)")
> +                  (string-append "set(GIT_COMMIT_HASH " ,commit ")"))
> +                 (("message\\(STATUS \\\"Using in-tree flatbuffers\\\"\\)")
> +                  "message(STATUS \"Using guix flatbuffers\")")
> +                 (("add_subdirectory\\(extlib/flatbuffers EXCLUDE_FROM_ALL\\)")
> +                  "#add_subdirectory(extlib/flatbuffers EXCLUDE_FROM_ALL)"))
> +               #t)))))
> +      (native-inputs
> +       `(("pkg-config" ,pkg-config)))
> +      (inputs
> +       `(("git" ,git)
> +         ("json-c" ,json-c)
> +         ("glu" ,glu)
> +         ("gtkmm" ,gtkmm)
> +         ("flatbuffers" ,flatbuffers)))
> +      (home-page "http://solvespace.com")
> +      (synopsis "Parametric 2D/3D CAD tool")
> +      (description "Parametric 2D/3D computer aided design (CAD) tool and
> +constraint-based parametric modeler with simple mechanical simulation
> +capabilities.")
> +      (license license:gpl3+))))
> 

The patch did not apply for some reason.

I did not try to build this package because the recursive checkouts of 
cairo et al took too much bandwidth. This is another reason to use the 
tarball instead - less waste of bandwidth.

Could you switch to that?

-- 
Cheers Swedebugia