unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
To: Kristian Lein-Mathisen <kristianlein@gmail.com>, 57361@debbugs.gnu.org
Subject: [bug#57361] Solvespace package re-done
Date: Thu, 01 Sep 2022 19:18:37 +0200	[thread overview]
Message-ID: <edb3a429f7c209d47b06c941ed6cf2d2fc634faf.camel@gmail.com> (raw)
In-Reply-To: <CAAGQtHyLKjDmcVHVFyqoGE4-0KiHF7TnE5joagEWnV7T2hdXnA@mail.gmail.com>

Am Mittwoch, dem 31.08.2022 um 20:51 +0200 schrieb Kristian Lein-
Mathisen:

> ;; There is another mimalloc, used in rust-mimalloc. But it's on
> mimalloc
> +;; version 1.6.4. TODO: See if it's possible to re-use this package
> by both.
> +(define mimalloc-for-solvespace
Given that this is the upstream mimalloc, there's no reason to make
this private or only for solvespace.  Note that you should separate
this into one patch per package.

> +  (let ((commit "f2712f4a8f038a7fb4df2790f4c3b7e3ed9e219b")
> +        (version "2.0.6"))
This is the release commit, no reason to use git-version etc. here
> +    (package
> +      (name "mimalloc-for-solvespace")
> +      (version (git-version version "1" commit))
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://github.com/microsoft/mimalloc")
> +                      (commit commit)))
You can use (string-append "v" version) to check out the tag.
> +                (file-name (git-file-name name version))
> +                (sha256
> +                 (base32
> +                 
> "05x2dl3zimflfj91ns3vrphmzpdlyyr230p9adqgfds101f16qmv"))))
> +      (build-system cmake-build-system)
> +      (arguments
> +       `(#:build-type "Release"))
> +      (synopsis "Compact general purpose allocator with excellent
> performance")
Don't bloat the synopsis with marketing terms; "General purpose
allocator" should probably suffice.
> +      (description "@code{mimalloc} is a drop-in replacement for
> @code{malloc}
.")

The rest appears somewhat superfluous :)
> +      (home-page "https://microsoft.github.io/mimalloc/")
> +      (license license:expat))))


> +(define-public solvespace
> +  (let ((commit "70bde63cb32a7f049fa56cbdf924e2695fcb2916")
> +        (version "3.1")
I haven't checked, but is this the release commit?  If so, no need for
all this verbosity.

> +        ;; libdxfrw has no readme, no version release, no tags. 
> Initial
> +        ;; commit says "libdxfrw-0.6.3 import", but it shares no git
> history
> +        ;; with "upstream" https://github.com/codelibs/libdxfrw. 
> Both are
> +        ;; difficult to package separately as they don't install
> properly.
> +        ;; Copying in-tree instead of #:recursive #t to avoid
> downloading the
> +        ;; other bigger dependencies which aren't needed.
> +        (libdxfrw-sources (origin
> +                            (method git-fetch)
> +                            (uri (git-reference (url
> +                                                
> "https://github.com/solvespace/libdxfrw")
> +                                                (commit
> +                                                
> "0b7b7b709d9299565db603f878214656ef5e9ddf")))
> +                            (sha256 (base32
> +                                    
> "0d2wjq81466m3hb5cffiy99vhx0irwwy47yfxp318k2q4cvd5z2a")))))
This should be its own variable.  Unlike with mimalloc, since it's just
an origin, you can use the same patch as solvespace.
> +    (package
> +      (name "solvespace")
> +      (version (git-version version "1" commit))
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url
> "https://github.com/solvespace/solvespace")
> +                      (commit commit)))
> +                (file-name (git-file-name name version))
> +                (sha256
> +                 (base32
> +                 
> "1hbdln44k00a6vlklv2mq2c9zda3i9d5x0f7ks85w4v6zskhqnra"))))
> +      (build-system cmake-build-system)
> +      (native-inputs (list pkg-config gettext-minimal))
> +      (arguments
> +       (list #:build-type "Release"
> +             #:phases #~(modify-phases %standard-phases
`guix style' is not yet perfect when it comes to trade-offs between
horizontal and vertical space.  Prefer 
  (list 
   #:build-type "Release"
   #:phases
   #~(modify-phases ...
> +                          (add-after 'unpack 'unpack-libdxfrw
> +                            (lambda _
> +                              (copy-recursively #$libdxfrw-sources
> +                                                "extlib/libdxfrw")))
> +                          (add-before 'configure 'embed-git-commit-
> hash
> +                            (lambda _
> +                              ;; `git describe` doesn't work here,
> so embed
> +                              ;; the commit hash directly in
> CMakeLists.txt as
> +                              ;; described instead.
> +                              (substitute* "CMakeLists.txt"
> +                                (("include\\(GetGitCommitHash\\)")
> +                                 (string-append "set(GIT_COMMIT_HASH
> "
> +                                                #$commit ")")))))
> +                          (add-before 'configure 'use-packaged-
> mimalloc
> +                            (lambda _
> +                              (substitute* "CMakeLists.txt"
> +                                (("message\\(STATUS \"Using in-tree
> mimalloc\"\\)")
> +                                 "message(STATUS \"Using guix
> packaged mimalloc\")")
> +                               
> (("add_subdirectory\\(extlib/mimalloc EXCLUDE_FROM_ALL\\)")
> +                                 "find_package(mimalloc
> REQUIRED)")))))))
> +      (inputs (list cairo
> +                    eigen
> +                    freetype
> +                    gtkmm-3
> +                    json-c
> +                    libpng
> +                    libspnav            ;spaceware
> +                    mimalloc-for-solvespace
> +                    mesa
> +                    zlib))
> +      (synopsis "Parametric 2D/3D CAD")
> +      (description
> +       "SOLVESPACE is a parametric 3D @acronym{CAD,
> +Computer Aided Design} tool.  Applications include:
> +
> +@itemize
> +@item modeling 3d parts — draw with extrudes, revolves, helixes and
> +      Boolean (union / difference / intersection) operations
> +@item modeling 2d parts — draw the part as a single section,
> +      and export DXF, PDF, SVG; use 3d assembly to verify fit
> +@item 3d-printed parts — export the STL or other triangle mesh
> +      expected by most 3d printers
> +@item preparing CAM data — export 2d vector art for a waterjet
> +      machine or laser cutter; or generate STEP or STL, for import
> into
> +      third-party CAM software for machining
> +@item mechanism design — use the constraint solver to simulate
> planar
> +      or spatial linkages, with pin, ball, or slide joints
> +@item plane and solid geometry — replace hand-solved trigonometry
> and spreadsheets
> +      with a live dimensioned drawing
> +@end itemize")
> +      (home-page "https://solvespace.com/")
> +      (license license:gpl3+))))
> +

Cheers




  reply	other threads:[~2022-09-01 17:34 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-23 12:08 [bug#57361] [PATCH] gnu: Add solvespace Kristian Lein-Mathisen
2022-08-31 18:51 ` [bug#57361] Solvespace package re-done Kristian Lein-Mathisen
2022-09-01 17:18   ` Liliana Marie Prikler [this message]
2022-09-01 17:20     ` Liliana Marie Prikler
2022-09-05 19:57 ` [bug#57361] [PATCH] gnu: Add solvespace Kristian Lein-Mathisen
2022-09-06  8:30 ` Kristian Lein-Mathisen
2022-09-06  8:33 ` Kristian Lein-Mathisen
2022-09-08 13:14   ` Ludovic Courtès
2022-09-10 15:27     ` Liliana Marie Prikler
2022-09-11 14:13       ` bug#57361: " Ludovic Courtès
2022-09-10  7:55 ` [bug#57361] " ( via Guix-patches via

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=edb3a429f7c209d47b06c941ed6cf2d2fc634faf.camel@gmail.com \
    --to=liliana.prikler@gmail.com \
    --cc=57361@debbugs.gnu.org \
    --cc=kristianlein@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).