[PATCH 0/3] gnu: fritzing: Improve package style.

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Sharlatan Hellseher
Owner
unassigned
Submitted by
Sharlatan Hellseher
Severity
normal
S
S
Sharlatan Hellseher wrote on 18 Apr 2023 22:09
(address . guix-patches@gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230418200934.10785-1-sharlatanus@gmail.com
This patch series continue adjustment of packages where qtserialport is in use
to make the future rename to qtserialport-5 and introduce qtserialport based
on Qt6 easer.

I've move parts into dedicated package and use it as native inputs during
configure phase. With gentle touch I've checked whether use-modules has no
duplicates and sort them alphabetically to soothe the future maintenance.

Sharlatan Hellseher (3):
gnu: Add fritzing-parts.
gnu: fritzing: Improve package style.
gnu: Sort use-module alphabetically in (gnu packages engineering)

gnu/packages/engineering.scm | 173 +++++++++++++++++++++--------------
1 file changed, 106 insertions(+), 67 deletions(-)


base-commit: 50dd91bc30634c75c0001cfd38bbcc2fbbeb894e
--
2.39.2
S
S
Sharlatan Hellseher wrote on 18 Apr 2023 22:19
[PATCH 1/3] gnu: Add fritzing-parts.
(address . 62941@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230418202000.11729-1-sharlatanus@gmail.com
* gnu/packages/engineering.scm (fritzing-parts): New variable.
---
gnu/packages/engineering.scm | 38 ++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (58 lines)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 49a12f70be..dd8a711566 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -66,6 +66,7 @@ (define-module (gnu packages engineering)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system ant)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system emacs)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
@@ -775,6 +776,43 @@ (define-public fritzing
;; released under GPLv3+.
(license (list license:gpl3+ license:cc-by-sa3.0))))
+(define-public fritzing-parts
+ ;; XXX: Release of the parts stopped in 2016 and it looks like develop
+ ;; branch has latest changes comparing to other branches.
+ (let ((commit "d61d63de9294343b1b6e86f149e78e4b1d3a0009")
+ (revision "0"))
+ (package
+ (name "fritzing-parts")
+ (version (git-version "0.9.6" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fritzing/fritzing-parts")
+ (commit commit)))
+ (file-name (git-file-name "fritzing-parts" version))
+ (sha256
+ (base32 "0g39ja1aqw5qx8alf61m6zcy6y78j9ky556x6x1cnd6g7kkzd861"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan
+ #~'(("." "share/library/"
+ #:exclude-regexp (".github.*"
+ ".gitignore"
+ "CONTRIBUTING.md"
+ "LICENSE.txt"
+ "README.md")))
+ #:modules '(((guix build gnu-build-system) #:prefix gnu:)
+ (guix build copy-build-system)
+ (guix build utils)
+ (ice-9 match))))
+ (home-page "https://fritzing.org")
+ (synopsis "Electronic components (parts library) for use in the Fritzing app")
+ (description "This package contains all part definitions that are
+required for Fritzing app.")
+ (license license:cc-by-sa3.0))))
+
(define-public qelectrotech
(package
(name "qelectrotech")
--
2.39.2
S
S
Sharlatan Hellseher wrote on 18 Apr 2023 22:20
[PATCH 3/3] gnu: Sort use-module alphabetically in (gnu packages engineering)
(address . 62941@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230418202000.11729-3-sharlatanus@gmail.com
* gnu/packages/engineering.scm: Sort use-module alphabetically to ease maintenance.
---
gnu/packages/engineering.scm | 40 ++++++++++++++++++++----------------
1 file changed, 22 insertions(+), 18 deletions(-)

Toggle diff (112 lines)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 67e72b58a3..85177d2c7c 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -37,6 +37,7 @@
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022, 2023 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2023 Theofilos Pechlivanis <theofilos.pechlivanis@gmail.com>
+;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -54,15 +55,6 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages engineering)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix gexp)
- #:use-module (guix git-download)
- #:use-module (guix svn-download)
- #:use-module (guix monads)
- #:use-module (guix store)
- #:use-module (guix utils)
- #:use-module ((srfi srfi-1) #:hide (zip))
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system ant)
#:use-module (guix build-system cmake)
@@ -73,6 +65,14 @@ (define-module (gnu packages engineering)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
+ #:use-module (guix download)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix monads)
+ #:use-module (guix packages)
+ #:use-module (guix store)
+ #:use-module (guix svn-download)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
@@ -90,7 +90,6 @@ (define-module (gnu packages engineering)
#:use-module (gnu packages cpp)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
- #:use-module (gnu packages gawk)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages digest)
#:use-module (gnu packages docbook)
@@ -100,6 +99,7 @@ (define-module (gnu packages engineering)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages fpga)
#:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gd)
#:use-module (gnu packages geo)
@@ -123,11 +123,12 @@ (define-module (gnu packages engineering)
#:use-module (gnu packages linux) ;FIXME: for pcb
#:use-module (gnu packages lisp)
#:use-module (gnu packages m4)
- #:use-module (gnu packages maths)
#:use-module (gnu packages man)
- #:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
+ #:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages openkinect)
#:use-module (gnu packages parallel)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
@@ -150,19 +151,19 @@ (define-module (gnu packages engineering)
#:use-module (gnu packages swig)
#:use-module (gnu packages tbb)
#:use-module (gnu packages tcl)
+ #:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages text-editors)
- #:use-module (gnu packages tree-sitter)
#:use-module (gnu packages tls)
- #:use-module (gnu packages tex)
+ #:use-module (gnu packages tree-sitter)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
- #:use-module (gnu packages xml)
- #:use-module (gnu packages xiph)
- #:use-module (gnu packages openkinect)
#:use-module (gnu packages xdisorg)
- #:use-module (gnu packages xorg))
+ #:use-module (gnu packages xiph)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg)
+ #:use-module ((srfi srfi-1) #:hide (zip)))
(define-public librecad
(package
@@ -745,6 +746,9 @@ (define-public fritzing
(substitute* "src/version/partschecker.cpp"
((".*git_libgit2_init.*")
"return \"083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs\";"))
+ ;; XXX: NixOS and Gento have a phase where they generate part
+ ;; SQLite library, have proper investigation if it's required in
+ ;; Guix as well.
(invoke "qmake"
(string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," #$output "/lib")
(string-append "PREFIX=" #$output)
--
2.39.2
S
S
Sharlatan Hellseher wrote on 18 Apr 2023 22:19
[PATCH 2/3] gnu: fritzing: Improve package style.
(address . 62941@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230418202000.11729-2-sharlatanus@gmail.com
* gnu/package/engineering.scm (fritzing): Improve package style.
Use Gexp.
[inputs]: Remove labels. Sort alphabetically.
[native-inputs]: Introduce it, use fritzing-parts instead local source.
---
gnu/packages/engineering.scm | 95 +++++++++++++++++-------------------
1 file changed, 46 insertions(+), 49 deletions(-)

Toggle diff (111 lines)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index dd8a711566..67e72b58a3 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -711,58 +711,55 @@ (define-public fritzing
(package
(name "fritzing")
(version "0.9.6")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fritzing/fritzing-app")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs"))))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fritzing/fritzing-app")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs"))))
(build-system gnu-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (copy-recursively (assoc-ref inputs "fritzing-parts-db")
- "parts")
- ;; Use system libgit2 and boost.
- (substitute* "phoenix.pro"
- (("^LIBGIT_STATIC.*")
- (string-append "LIBGIT2INCLUDE=" (assoc-ref inputs "libgit2") "/include\n"
- "LIBGIT2LIB=" (assoc-ref inputs "libgit2") "/lib\n"
- "INCLUDEPATH += $$LIBGIT2INCLUDE\n"
- "LIBS += -L$$LIBGIT2LIB -lgit2\n"))
- (("^.*pri/libgit2detect.pri.") ""))
- ;; Trick the internal mechanism to load the parts
- (substitute* "src/version/partschecker.cpp"
- ((".*git_libgit2_init.*")
- "return \"083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs\";"))
-
- (let ((out (assoc-ref outputs "out")))
- (invoke "qmake"
- (string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," out "/lib")
- (string-append "PREFIX=" out)
- "phoenix.pro")))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ ;; Integrate parts library
+ (copy-recursively
+ (string-append #$(this-package-native-input "fritzing-parts")
+ "/share/library")
+ "parts")
+ ;; Use system libgit2 and boost.
+ (substitute* "phoenix.pro"
+ (("^LIBGIT_STATIC.*")
+ (string-append
+ "LIBGIT2INCLUDE=" #$(this-package-input "libgit2") "/include\n"
+ "LIBGIT2LIB=" #$(this-package-input "libgit2") "/lib\n"
+ "INCLUDEPATH += $$LIBGIT2INCLUDE\n"
+ "LIBS += -L$$LIBGIT2LIB -lgit2\n"))
+ (("^.*pri/libgit2detect.pri.") ""))
+ ;; Trick the internal mechanism to load the parts
+ (substitute* "src/version/partschecker.cpp"
+ ((".*git_libgit2_init.*")
+ "return \"083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs\";"))
+ (invoke "qmake"
+ (string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," #$output "/lib")
+ (string-append "PREFIX=" #$output)
+ "phoenix.pro"))))))
+ (native-inputs
+ (list fritzing-parts))
(inputs
- `(("qtbase" ,qtbase-5)
- ("qtserialport" ,qtserialport)
- ("qtsvg-5" ,qtsvg-5)
- ("libgit2" ,libgit2)
- ("boost" ,boost)
- ("zlib" ,zlib)
- ("fritzing-parts-db"
- ,(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fritzing/fritzing-parts")
- (commit (string-append "release_" version))))
- (file-name (git-file-name "fritzing-parts" version))
- (sha256
- (base32
- "0wsvn57v6n0ygnhk2my94rrfzb962z1cj4d1xmp1farwck3811h6"))))))
+ (list boost
+ libgit2
+ qtbase-5
+ ;; TODO: Needs to be renamed to qtserialport-5. when version 6 is
+ ;; packed.
+ qtserialport
+ qtsvg-5
+ zlib))
(home-page "https://fritzing.org")
(synopsis "Electronic circuit design")
(description
--
2.39.2
L
L
Ludovic Courtès wrote on 11 Aug 2023 00:46
Re: bug#62941: [PATCH 0/3] gnu: fritzing: Improve package style.
(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)(address . 62941-done@debbugs.gnu.org)
878raiikhs.fsf@gnu.org
Hi,

Sharlatan Hellseher <sharlatanus@gmail.com> skribis:

Toggle quote (13 lines)
> This patch series continue adjustment of packages where qtserialport is in use
> to make the future rename to qtserialport-5 and introduce qtserialport based
> on Qt6 easer.
>
> I've move parts into dedicated package and use it as native inputs during
> configure phase. With gentle touch I've checked whether use-modules has no
> duplicates and sort them alphabetically to soothe the future maintenance.
>
> Sharlatan Hellseher (3):
> gnu: Add fritzing-parts.
> gnu: fritzing: Improve package style.
> gnu: Sort use-module alphabetically in (gnu packages engineering)

It took a while, but it’s finally applied, thanks!

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 62941@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 62941
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch