* [bug#36352] [PATCH] gnu: Add solvespace.
@ 2019-06-24 12:27 Myles English
2019-06-25 20:35 ` swedebugia
2019-07-02 22:30 ` Ludovic Courtès
0 siblings, 2 replies; 7+ messages in thread
From: Myles English @ 2019-06-24 12:27 UTC (permalink / raw)
To: 36352; +Cc: Myles English
* 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@web.de>
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019 Tim Stahel <swedneck@swedneck.xyz>
+;;; Copyright © 2019 Myles English <myles@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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#36352] [PATCH] gnu: Add solvespace.
2019-06-24 12:27 [bug#36352] [PATCH] gnu: Add solvespace Myles English
@ 2019-06-25 20:35 ` swedebugia
2019-07-02 22:30 ` Ludovic Courtès
1 sibling, 0 replies; 7+ messages in thread
From: swedebugia @ 2019-06-25 20:35 UTC (permalink / raw)
To: 36352
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@web.de>
> ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
> ;;; Copyright © 2019 Tim Stahel <swedneck@swedneck.xyz>
> +;;; Copyright © 2019 Myles English <myles@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
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bug#36352] [PATCH] gnu: Add solvespace.
2019-06-24 12:27 [bug#36352] [PATCH] gnu: Add solvespace Myles English
2019-06-25 20:35 ` swedebugia
@ 2019-07-02 22:30 ` Ludovic Courtès
2019-09-02 13:24 ` Ludovic Courtès
1 sibling, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2019-07-02 22:30 UTC (permalink / raw)
To: Myles English; +Cc: 36352, Myles English
Hello Myles,
Myles English <mylesenglish@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’.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bug#36352] [PATCH] gnu: Add solvespace.
2019-07-02 22:30 ` Ludovic Courtès
@ 2019-09-02 13:24 ` Ludovic Courtès
2019-09-03 0:28 ` Myles English
0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2019-09-02 13:24 UTC (permalink / raw)
To: Myles English; +Cc: 36352, Myles English
Hello Myles,
Did you have a chance to look into that? (See below.)
Thanks in advance,
Ludo’.
Ludovic Courtès <ludo@gnu.org> skribis:
> Hello Myles,
>
> Myles English <mylesenglish@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’.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bug#36352] [PATCH] gnu: Add solvespace.
2019-09-02 13:24 ` Ludovic Courtès
@ 2019-09-03 0:28 ` Myles English
2019-09-03 9:19 ` Ludovic Courtès
0 siblings, 1 reply; 7+ messages in thread
From: Myles English @ 2019-09-03 0:28 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 36352, Myles English
[-- Attachment #1: Type: text/plain, Size: 2783 bytes --]
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@gnu.org> wrote:
> Did you have a chance to look into that? (See below.)
>
> Ludovic Courtès <ludo@gnu.org> skribis:
>
> > Hello Myles,
> >
> > Myles English <mylesenglish@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
>
[-- Attachment #2: Type: text/html, Size: 5515 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bug#36352] [PATCH] gnu: Add solvespace.
2019-09-03 0:28 ` Myles English
@ 2019-09-03 9:19 ` Ludovic Courtès
2023-06-20 21:28 ` bug#36352: " Jelle Licht
0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2019-09-03 9:19 UTC (permalink / raw)
To: Myles English; +Cc: 36352, Myles English
Hi Myles,
Myles English <mylesenglish@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’.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-06-20 21:29 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-24 12:27 [bug#36352] [PATCH] gnu: Add solvespace Myles English
2019-06-25 20:35 ` swedebugia
2019-07-02 22:30 ` Ludovic Courtès
2019-09-02 13:24 ` Ludovic Courtès
2019-09-03 0:28 ` Myles English
2019-09-03 9:19 ` Ludovic Courtès
2023-06-20 21:28 ` bug#36352: " Jelle Licht
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.