GNU bug report logs - #36352
[PATCH] gnu: Add solvespace.

Previous Next

Package: guix-patches;

Reported by: Myles English <mylesenglish <at> gmail.com>

Date: Mon, 24 Jun 2019 12:28:01 UTC

Severity: normal

Tags: patch

Done: Jelle Licht <jlicht <at> fsfe.org>

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 36352 in the body.
You can then email your comments to 36352 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#36352; Package guix-patches. (Mon, 24 Jun 2019 12:28:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Myles English <mylesenglish <at> gmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 24 Jun 2019 12:28:02 GMT) Full text and rfc822 format available.

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

From: Myles English <mylesenglish <at> gmail.com>
To: guix-patches <at> gnu.org
Cc: Myles English <myles <at> tdma.co>
Subject: [PATCH] gnu: Add solvespace.
Date: Mon, 24 Jun 2019 13:27:10 +0100
* 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 <jonathan.brielmaier <at> web.de>
 ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac <at> systemreboot.net>
 ;;; Copyright © 2019 Tim Stahel <swedneck <at> swedneck.xyz>
+;;; Copyright © 2019 Myles English <myles <at> tdma.co>
 ;;;
 ;;; 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)))
+         (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+))))
-- 
2.22.0





Information forwarded to guix-patches <at> gnu.org:
bug#36352; Package guix-patches. (Tue, 25 Jun 2019 20:36:02 GMT) Full text and rfc822 format available.

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

From: swedebugia <swedebugia <at> riseup.net>
To: guix-patches <at> gnu.org
Subject: Re: [bug#36352] [PATCH] gnu: Add solvespace.
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 <jonathan.brielmaier <at> web.de>
>   ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac <at> systemreboot.net>
>   ;;; Copyright © 2019 Tim Stahel <swedneck <at> swedneck.xyz>
> +;;; Copyright © 2019 Myles English <myles <at> tdma.co>
>   ;;;
>   ;;; 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




Information forwarded to guix-patches <at> gnu.org:
bug#36352; Package guix-patches. (Tue, 02 Jul 2019 22:32:02 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludo <at> gnu.org>
To: Myles English <mylesenglish <at> gmail.com>
Cc: 36352 <at> debbugs.gnu.org, Myles English <myles <at> tdma.co>
Subject: Re: [bug#36352] [PATCH] gnu: Add solvespace.
Date: Wed, 03 Jul 2019 00:30:52 +0200
Hello Myles,

Myles English <mylesenglish <at> gmail.com> skribis:

> * gnu/packages/game-development.scm (solvespace): New variable and
> dependencies on gnu package modules.

The patch LGTM overall.  Here are some comments/questions:

> +(define-public solvespace-3
> +  (let ((commit "5df53fc59e7f31e265fabd4c15e6601bd3032833")
> +	(revision "1"))
> +    (package
> +      (name "solvespace")
> +      (version (git-version "3.0" revision commit))


Why choose this commit specifically?  ‘git describe’ returns
“v2.1.rc1-570-g5df53fc”, and in fact there’s no “v3.0” tag, so this
version string is a bit misleading.

The general policy is to use the latest release, but if there’s a
compelling argument, we can use another commit; in that case, it’s
better to have a comment explaining the choice.

> +         (uri (git-reference
> +               (url "https://github.com/solvespace/solvespace.git")
> +               (commit commit)
> +               (recursive? #t)))

Is ‘recursive?’ needed?  If it’s just for the bundled dependencies under
extlib/ that are not used anyway, perhaps we can omit it?

> +      (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.")

Could you make it a full sentence and perhaps expound a little bit, as
per <https://gnu.org/s/guix/manual/en/html_node/Synopses-and-Descriptions.html>?

Thank you, and apologies for the delay!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#36352; Package guix-patches. (Mon, 02 Sep 2019 13:25:01 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludo <at> gnu.org>
To: Myles English <mylesenglish <at> gmail.com>
Cc: 36352 <at> debbugs.gnu.org, Myles English <myles <at> tdma.co>
Subject: Re: [bug#36352] [PATCH] gnu: Add solvespace.
Date: Mon, 02 Sep 2019 15:24:02 +0200
Hello Myles,

Did you have a chance to look into that?  (See below.)

Thanks in advance,
Ludo’.

Ludovic Courtès <ludo <at> gnu.org> skribis:

> Hello Myles,
>
> Myles English <mylesenglish <at> gmail.com> skribis:
>
>> * gnu/packages/game-development.scm (solvespace): New variable and
>> dependencies on gnu package modules.
>
> The patch LGTM overall.  Here are some comments/questions:
>
>> +(define-public solvespace-3
>> +  (let ((commit "5df53fc59e7f31e265fabd4c15e6601bd3032833")
>> +	(revision "1"))
>> +    (package
>> +      (name "solvespace")
>> +      (version (git-version "3.0" revision commit))
>
>
> Why choose this commit specifically?  ‘git describe’ returns
> “v2.1.rc1-570-g5df53fc”, and in fact there’s no “v3.0” tag, so this
> version string is a bit misleading.
>
> The general policy is to use the latest release, but if there’s a
> compelling argument, we can use another commit; in that case, it’s
> better to have a comment explaining the choice.
>
>> +         (uri (git-reference
>> +               (url "https://github.com/solvespace/solvespace.git")
>> +               (commit commit)
>> +               (recursive? #t)))
>
> Is ‘recursive?’ needed?  If it’s just for the bundled dependencies under
> extlib/ that are not used anyway, perhaps we can omit it?
>
>> +      (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.")
>
> Could you make it a full sentence and perhaps expound a little bit, as
> per <https://gnu.org/s/guix/manual/en/html_node/Synopses-and-Descriptions.html>?
>
> Thank you, and apologies for the delay!
>
> Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#36352; Package guix-patches. (Tue, 03 Sep 2019 00:29:01 GMT) Full text and rfc822 format available.

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

From: Myles English <mylesenglish <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 36352 <at> debbugs.gnu.org, Myles English <myles <at> tdma.co>
Subject: Re: [bug#36352] [PATCH] gnu: Add solvespace.
Date: Tue, 3 Sep 2019 01:28:28 +0100
[Message part 1 (text/plain, inline)]
Hi Ludo',

Thanks a lot for your comments, sorry I hadn't replied yet.

On Mon, 2 Sep 2019, 14:24 Ludovic Courtès, <ludo <at> gnu.org> wrote:

> Did you have a chance to look into that?  (See below.)
>
> Ludovic Courtès <ludo <at> gnu.org> skribis:
>
> > Hello Myles,
> >
> > Myles English <mylesenglish <at> gmail.com> skribis:
> >
> >> * gnu/packages/game-development.scm (solvespace): New variable and
>

game-development.scm? I think I put it in the wrong place.

>> dependencies on gnu package modules.
> >
> > The patch LGTM overall.  Here are some comments/questions:
> >
> >> +(define-public solvespace-3
> >> +  (let ((commit "5df53fc59e7f31e265fabd4c15e6601bd3032833")
> >> +    (revision "1"))
> >> +    (package
> >> +      (name "solvespace")
> >> +      (version (git-version "3.0" revision commit))
> >
> >
> > Why choose this commit specifically?  ‘git describe’ returns
> > “v2.1.rc1-570-g5df53fc”, and in fact there’s no “v3.0” tag, so this
> > version string is a bit misleading.
> >
> > The general policy is to use the latest release, but if there’s a
> > compelling argument, we can use another commit; in that case, it’s
> > better to have a comment explaining the choice.
>

It looks as though a longawaited v3.0 release may be imminent, hence my
delay in replying to your advice.  I'll wait another week or two before
asking if it is going to drop 'soon'.  (I would have tried to justify my
choice by referencing the unofficial Debian package, mentioned on the
project's github page, using the master branch and calling itself v3.0.)

>> +         (uri (git-reference
>
>> +               (url "https://github.com/solvespace/solvespace.git")
> >> +               (commit commit)
> >> +               (recursive? #t)))
> >
> > Is ‘recursive?’ needed?  If it’s just for the bundled dependencies under
> > extlib/ that are not used anyway, perhaps we can omit it?
>

Some of them are still used (sorry I can't check which ones just now).  I
have trivially modified the build system so that if :recursive? is a list
it only clones those submodules listed. I can find the patch later but its
just a couple of lines.  If this is adopted should may be rename
:recursive? or add another parameter?

>> +      (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.")
> >
> > Could you make it a full sentence and perhaps expound a little bit, as
> > per <
> https://gnu.org/s/guix/manual/en/html_node/Synopses-and-Descriptions.html
> >?
>

I'll try and improve this when I make a patch for the true v3.0.

Myles

>
[Message part 2 (text/html, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#36352; Package guix-patches. (Tue, 03 Sep 2019 09:21:01 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludo <at> gnu.org>
To: Myles English <mylesenglish <at> gmail.com>
Cc: 36352 <at> debbugs.gnu.org, Myles English <myles <at> tdma.co>
Subject: Re: [bug#36352] [PATCH] gnu: Add solvespace.
Date: Tue, 03 Sep 2019 11:19:54 +0200
Hi Myles,

Myles English <mylesenglish <at> gmail.com> skribis:

> It looks as though a longawaited v3.0 release may be imminent, hence my
> delay in replying to your advice.  I'll wait another week or two before
> asking if it is going to drop 'soon'.  (I would have tried to justify my
> choice by referencing the unofficial Debian package, mentioned on the
> project's github page, using the master branch and calling itself v3.0.)

Sounds good!

>>> +         (uri (git-reference
>>
>>> +               (url "https://github.com/solvespace/solvespace.git")
>> >> +               (commit commit)
>> >> +               (recursive? #t)))
>> >
>> > Is ‘recursive?’ needed?  If it’s just for the bundled dependencies under
>> > extlib/ that are not used anyway, perhaps we can omit it?
>>
>
> Some of them are still used (sorry I can't check which ones just now).  I
> have trivially modified the build system so that if :recursive? is a list
> it only clones those submodules listed. I can find the patch later but its
> just a couple of lines.  If this is adopted should may be rename
> :recursive? or add another parameter?

At first sight I think I’d keep it simple and just keep ‘recursive?’ as
it is.  After all, if that fetches too many submodules in this specific
case, that’s not the end of the world and we can always delete them
explicitly afterwards.  I think it’s quite unusual to need some but not
all of the submodules.

Thanks,
Ludo’.




Reply sent to Jelle Licht <jlicht <at> fsfe.org>:
You have taken responsibility. (Tue, 20 Jun 2023 21:29:02 GMT) Full text and rfc822 format available.

Notification sent to Myles English <mylesenglish <at> gmail.com>:
bug acknowledged by developer. (Tue, 20 Jun 2023 21:29:02 GMT) Full text and rfc822 format available.

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

From: Jelle Licht <jlicht <at> fsfe.org>
To: 36352-done <at> debbugs.gnu.org
Cc: Myles English <myles <at> tdma.co>,
 Ludovic Courtès <ludo <at> gnu.org>,
 Myles English <mylesenglish <at> gmail.com>
Subject: Re: bug#36352: [PATCH] gnu: Add solvespace.
Date: Tue, 20 Jun 2023 23:28:34 +0200
We have solvespace <at> 3.1 in guix master, closing!

- Jelle




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

This bug report was last modified 274 days ago.

Previous Next


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