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
next prev parent 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).