[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#57361] Solvespace package re-done
From: |
Liliana Marie Prikler |
Subject: |
[bug#57361] Solvespace package re-done |
Date: |
Thu, 01 Sep 2022 19:18:37 +0200 |
User-agent: |
Evolution 3.42.1 |
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
- [bug#57361] Solvespace package re-done,
Liliana Marie Prikler <=