[PATCH] gnu: engineering: Add candle.

DoneSubmitted by Artyom V. Poptsov.
Details
3 participants
  • Ludovic Courtès
  • Jean Pierre De Jesus DIAZ
  • Artyom V. Poptsov
Owner
unassigned
Severity
normal
A
A
Artyom V. Poptsov wrote on 2 Jul 11:47 +0200
(address . guix-patches@gnu.org)
87o7y74zic.fsf@gmail.com
Hello,

this patch adds Candle[1] CNC controller.
From a3c57bbd8cb9f87a92e063d02e69aa2f29f6a895 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Sat, 2 Jul 2022 12:37:13 +0300
Subject: [PATCH] gnu: engineering: Add candle.

* gnu/packages/engineering.scm (candle): New variable.
---
gnu/packages/engineering.scm | 37 ++++++++++++++++++++++++------------
1 file changed, 25 insertions(+), 12 deletions(-)

Toggle diff (51 lines)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 661078594e..3bae7d100e 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -3702,19 +3702,32 @@ (define-public candle
               (sha256
                (base32
                 "1rinblzqg8xbi4zcyx6v3k7g2kdrgmwm7xwb6fryb8s0bd21jppv"))))
-    (build-system qt-build-system)
-    ;; (native-inputs
-    ;;  ())
-    ;; (inputs)
+    (build-system gnu-build-system)
+    (native-inputs (list qttools))
+    (inputs (list qtbase-5 qtserialport))
     (arguments
-     (list #:phases
-           #~(modify-phases %standard-phases
-               (replace 'configure
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   (chdir "src")
-                   (invoke "qmake"
-                           (string-append "PREFIX=" (assoc-ref outputs "out")))
-                   #t)))))
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'fix-sources
+                    (lambda _
+                      (substitute* (find-files "." ".*\\.h")
+                        (("const char\\* what\\(\\) const override")
+                         "const char* what() const noexcept override"))))
+                  (replace 'configure
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (chdir "src")
+                        (invoke "qmake"))))
+                  (add-after 'configure 'fix-makefile
+                    (lambda _
+                      (substitute* "Makefile"
+                        (("-pipe -Z7") "-pipe")
+                        (("LFLAGS.*=.*DEBUG .*OPT:REF -Wl,-O1")
+                         "LFLAGS        = -Wl,-O1"))))
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (install-file "Candle"
+                                      (string-append out "/bin"))))))))
     (home-page "https://github.com/Denvi/Candle")
     (synopsis "GRBL controller with G-Code visualizer")
     (description
-- 
2.34.1
Thanks,

- Artyom

References:

--
Artyom "avp" Poptsov <poptsov.artyom@gmail.com>
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F
-----BEGIN PGP SIGNATURE-----

iQFNBAEBCgA3FiEE0MLqwTMQgi2Y3rV86cWi2QiYoC8FAmLAFE8ZHHBvcHRzb3Yu
YXJ0eW9tQGdtYWlsLmNvbQAKCRDpxaLZCJigL8FVB/4wpzOIFKvAheaplj8yu5rl
gIbIKBNzX8lbmB4ipIf6tctQiwAhnSeQNip5FvVwz1vLC0pMKEQAHTHABfy1Ljjj
q2/KaIYOnogOqdkw1eyirPrylgNWcvbvXpdmB5I1UmsuCvQ3ut27Se115/q/Ljhw
3OCdApbr4X5cGL/2xU3rDLo8F1jQDWgf9WmuDjsairllniN4Ap4SM1ozw/72KZ0A
5qdYVgSWpWCQXe2hHN/nKBQfd1oVtzILJBsLGVqabL40M4vRP75ywrqL6Ar015rP
pSI4egqbTjY8VFAviQNmGbRJfEhjDov2YsuCt44tHC3CupqggwzmbJx1ay2Vrgb3
=bSLV
-----END PGP SIGNATURE-----

A
A
Artyom V. Poptsov wrote on 4 Jul 05:36 +0200
(address . guix-patches@gnu.org)
87fsjhft1m.fsf@gmail.com
Hello,

I found out that the patch I've sent was broken in two ways: firstly, it
contains only part of my changes; secondly, Candle fails to store its
settings as it tries to store it in the same directory where the binary
stored.

Here's the updated patch.
From e4530e457e465243dae5b58eb8b7fa2e3951757d Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Thu, 23 Jun 2022 23:02:40 +0300
Subject: [PATCH] gnu: engineering: Add candle.

* gnu/packages/engineering.scm (candle): New variable.
---
gnu/packages/engineering.scm | 62 ++++++++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)

Toggle diff (72 lines)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index fe8ab13298..b4f0b5e020 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -3688,3 +3688,65 @@ (define-public xschem
 netlists from the drawn schematic, allowing the simulation of the circuit.")
       (home-page "https://xschem.sourceforge.io/stefan/index.html")
       (license license:gpl2+))))
+
+(define-public candle
+  (package
+    (name "candle")
+    (version "1.2b")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Denvi/Candle")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1rinblzqg8xbi4zcyx6v3k7g2kdrgmwm7xwb6fryb8s0bd21jppv"))))
+    (build-system gnu-build-system)
+    (native-inputs (list qttools))
+    (inputs (list qtbase-5 qtserialport))
+    (arguments
+     `(#:tests? #f                      ; no tests.
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'fix-sources
+                    (lambda _
+                      (substitute* (find-files "." ".*\\.h")
+                        (("const char\\* what\\(\\) const override")
+                         "const char* what() const noexcept override"))))
+                  (add-after 'fix-sources 'fix-application-settings-path
+                    (lambda _
+                      (substitute* "src/frmmain.cpp"
+                        (("qApp->applicationDirPath\\(\\) \\+ \"\\/settings\\.ini\"")
+                         "QDir::homePath() + \"/.config/candle.ini\""))))
+                  (replace 'configure
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (chdir "src")
+                        (invoke "qmake"))))
+                  (add-after 'configure 'fix-makefile
+                    (lambda _
+                      (substitute* "Makefile"
+                        (("-pipe -Z7") "-pipe")
+                        (("LFLAGS.*=.*DEBUG .*OPT:REF -Wl,-O1")
+                         "LFLAGS        = -Wl,-O1"))))
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (install-file "Candle"
+                                      (string-append out "/bin"))))))))
+    (home-page "https://github.com/Denvi/Candle")
+    (synopsis "GRBL controller with G-Code visualizer")
+    (description
+     "GRBL controller application with G-Code visualizer written in Qt.
+
+Supported functions:
+
+@itemize
+@item Controlling GRBL-based cnc-machine via console commands, buttons on
+form, numpad.
+@item Monitoring CNC-machine state.
+@item Loading, editing, saving and sending of G-code files to CNC-machine.
+@item Visualizing G-code files.
+@end itemize")
+    (license license:gpl3)))
+
-- 
2.34.1
Thanks

- Artyom

--
Artyom "avp" Poptsov <poptsov.artyom@gmail.com>
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F
-----BEGIN PGP SIGNATURE-----

iQFNBAEBCgA3FiEE0MLqwTMQgi2Y3rV86cWi2QiYoC8FAmLCYDUZHHBvcHRzb3Yu
YXJ0eW9tQGdtYWlsLmNvbQAKCRDpxaLZCJigL7qQB/9SRi++E7y5U+oRCqrMhnW3
WaQtBTexo2DGMoXmJ63oFFJjFxiFAel06P/bKW0JF1zN4E3aV6+iaVaZBwP9W03A
WNaCNPfi47e8js8ZgfMB/P+9UZlmSZ+fXJfQn4PCl8Hm3Y4HURGARwIrEYWS2bEG
S+s6bffuLSoC5JCgMzDK3YnCt++12hCyeoihC5XYy8IOgZnqkFKxcBVojrSxd3K+
2fM2y3MBx7aEF9wwYzIE15ZyxD7sxup+eukMo4qpFzmphRQkiOXXploeEGf43HW6
cCDiWndWvnJvuDnH68cVSs1ClaF0Q6RksqvTXwDRLQXxAhq1f2ySu3LraJ1Dp4GY
=DNQD
-----END PGP SIGNATURE-----

J
J
Jean Pierre De Jesus DIAZ wrote on 5 Jul 14:16 +0200
Review
(name . 56354@debbugs.gnu.org)(address . 56354@debbugs.gnu.org)
AsFTXnMhB9hzYBjMe1gOU8zfsbUpPZq_LElsdHYSKoY9cQCqjIbGAYUv-SsCI8TRmP3zFW0j3qStAWlTJwFd9yMEwhzYD2Q5m0HKESL7lb8=@jeandudey.tech
Toggle quote (4 lines)
>+ (arguments
>+ `(#:tests? #f ; no tests.
>+ #:phases (modify-phases %standard-phases

Can be changed to use G-Expressions:

(arguments
(list #:tests? #f ;; no tests.
#:phases
#~(modify-phases %standard-phases
...)))


Toggle quote (2 lines)
>+ (add-after 'fix-sources 'fix-application-settings-path

Doesn't depend on 'fix-sources, so it's fine to add after 'unpack.

Toggle quote (6 lines)
>+ (replace 'configure
>+ (lambda* (#:key outputs #:allow-other-keys)
>+ (let ((out (assoc-ref outputs "out")))
>+ (chdir "src")
>+ (invoke "qmake"))))

It may also be a good idea to set `QMAKE_CC' variable for cross-compilation,
like:

`(invoke "qmake" (string-append "QMAKE_CC=" #$(cc-for-target)))'

And also test cross-compilation:

./pre-inst-env guix build candle \
--keep-failed \
--target=aarch64-linux-gnu

Toggle quote (7 lines)
>+ (add-after 'configure 'fix-makefile
>+ (lambda _
>+ (substitute* "Makefile"
>+ (("-pipe -Z7") "-pipe")
>+ (("LFLAGS.*=.*DEBUG .*OPT:REF -Wl,-O1")
>+ "LFLAGS = -Wl,-O1"))))

Could this instead be replaced on the `candle.pro' file?

Jean-Pierre De Jesus DIAZ
A
A
Artyom V. Poptsov wrote on 9 Jul 15:43 +0200
Re: [PATCH] gnu: engineering: Add candle.
(address . guix-patches@gnu.org)
877d4mqu3n.fsf@gmail.com
Hello Jean Pierre De Jesus DIAZ,

I almost overlooked your message from debbugs as it wasn't delivered to
my mailbox. Thanks for the patch review!

Toggle quote (2 lines)
> Can be changed to use G-Expressions:

Done.

Toggle quote (3 lines)
> >+ (add-after 'fix-sources 'fix-application-settings-path
> Doesn't depend on 'fix-sources, so it's fine to add after 'unpack.

Done.

Toggle quote (5 lines)
> It may also be a good idea to set `QMAKE_CC' variable for cross-compilation,
> like:
>
> `(invoke "qmake" (string-append "QMAKE_CC=" #$(cc-for-target)))'

Done.

But I wasn't able to run cross-compilation with the command you
provided:

Toggle snippet (4 lines)
$ ./pre-inst-env guix build --keep-failed --target=aarch64-linux-gnu candle
guix build: error: gnu/packages/freedesktop.scm:1921:2: perl-file-mimeinfo@0.29: build system `perl' does not support cross builds

It seems to me from the message that the issue is not in the candle
package itself.

Toggle quote (9 lines)
> >+ (add-after 'configure 'fix-makefile
> >+ (lambda _
> >+ (substitute* "Makefile"
> >+ (("-pipe -Z7") "-pipe")
> >+ (("LFLAGS.*=.*DEBUG .*OPT:REF -Wl,-O1")
> >+ "LFLAGS = -Wl,-O1"))))
>
> Could this instead be replaced on the `candle.pro' file?

I fixed it by using the latest commit from the 'master' branch instead
of 1.2b tag.

Please find the updated patch attached.
From 3830792f316287de22fa62b2adff6aeb2b94a160 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Thu, 23 Jun 2022 23:02:40 +0300
Subject: [PATCH] gnu: engineering: Add candle.

* gnu/packages/engineering.scm (candle): New variable.
---
gnu/packages/engineering.scm | 63 ++++++++++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)

Toggle diff (73 lines)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index fe8ab13298..a3445343fc 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -3688,3 +3688,66 @@ (define-public xschem
 netlists from the drawn schematic, allowing the simulation of the circuit.")
       (home-page "https://xschem.sourceforge.io/stefan/index.html")
       (license license:gpl2+))))
+
+(define-public candle
+  ;; The latest tagged version 1.2b fails on the build stage due to
+  ;; non-supported g++ flags so we need to use the latest commit from the
+  ;; 'master' branch in the repository.
+  (let ((commit   "3f763bcde1195e23ba119a5b3c70d7c889881019")
+        (revision "1"))
+    (package
+      (name "candle")
+      (version (git-version "1.2b" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/Denvi/Candle")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "08rqhl6a5a8s67a8yl16944zgcsnnb08xfv4klzyqwlvaqgfp783"))))
+      (build-system gnu-build-system)
+      (native-inputs (list qttools))
+      (inputs (list qtbase-5 qtserialport))
+      (arguments
+       (list #:tests? #f                      ; no tests.
+             #:phases #~(modify-phases %standard-phases
+                          (add-after 'unpack 'fix-sources
+                            (lambda _
+                              (substitute* (find-files "." ".*\\.h")
+                                (("const char\\* what\\(\\) const override")
+                                 "const char* what() const noexcept override"))))
+                          (add-after 'unpack 'fix-application-settings-path
+                            (lambda _
+                              (substitute* "src/frmmain.cpp"
+                                (("qApp->applicationDirPath\\(\\) \\+ \"\\/settings\\.ini\"")
+                                 "QDir::homePath() + \"/.config/candle.ini\""))))
+                          (replace 'configure
+                            (lambda* (#:key outputs #:allow-other-keys)
+                              (let ((out (assoc-ref outputs "out")))
+                                (chdir "src")
+                                (invoke "qmake"
+                                        (string-append "QMAKE_CC="
+                                                       #$(cc-for-target))))))
+                          (replace 'install
+                            (lambda* (#:key outputs #:allow-other-keys)
+                              (let ((out (assoc-ref outputs "out")))
+                                (install-file "Candle"
+                                              (string-append out "/bin"))))))))
+      (home-page "https://github.com/Denvi/Candle")
+      (synopsis "GRBL controller with G-Code visualizer")
+      (description
+       "GRBL controller application with G-Code visualizer written in Qt.
+
+Supported functions:
+
+@itemize
+@item Controlling GRBL-based cnc-machine via console commands, buttons on
+form, numpad.
+@item Monitoring CNC-machine state.
+@item Loading, editing, saving and sending of G-code files to CNC-machine.
+@item Visualizing G-code files.
+@end itemize")
+      (license license:gpl3))))
+
-- 
2.34.1
Thanks,

- Artyom

--
Artyom "avp" Poptsov <poptsov.artyom@gmail.com>
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F
-----BEGIN PGP SIGNATURE-----

iQFNBAEBCgA3FiEE0MLqwTMQgi2Y3rV86cWi2QiYoC8FAmLJhhwZHHBvcHRzb3Yu
YXJ0eW9tQGdtYWlsLmNvbQAKCRDpxaLZCJigL63UB/9678kZsV95pulYrSF9tAXK
gS9Cn0TxEXhsA0gT4ykvwbwhXRY+iq8b4wY5l5MS7POfmsW3J2e6dUIxlGf7SAfq
os0GxnbUs+935OUeT7aw69GIcUSIj6uQIBMZ9sX1fBxt3UMN9pspU9R+kTyXsWld
w9RDyFoKyXqCN3BDXbM6hblrD+/yg9Zx/LZcAC6Tz+0Uvjxayq19JEZ87wsVULLD
fFofAP4gvQH4C7aDQ3GiaVZamNQ2IMmVWgiUczW5WhYn1VLF46bOrbU1223VfXAI
/KAPfxGc52qpoHGcQwkkeqthrs1r+dPRcx4p88ulT9gcU/GNzJlp6XNUPHfPD8cs
=dfNJ
-----END PGP SIGNATURE-----

J
J
Jean Pierre De Jesus DIAZ wrote on 11 Jul 13:55 +0200
[PATCH] gnu: engineering: Add candle.
M7JKaZZ3AMO61QYlYKULMbrhV6ckNohCUBt_vyaGBKaMsQv3uZqHxtrn9ZJPOErEC7WobqLtq436qf4LPIWGQpVhIT9hz3ER60XjEagErQk=@jeandudey.tech
Hello Artyom,

Toggle quote (3 lines)
>It seems to me from the message that the issue is not in the candle
>package itself.

Probably one of the dependencies can't (currently) be cross-compiled,
anyway, thanks for setting the QMAKE_CC variable in the qmake invocation,
once perl build system gains cross-compilation (if possible) then it
would be easier to cross-compile later without modifications to the
package.

Toggle quote (7 lines)
>+ (lambda* (#:key outputs #:allow-other-keys)
>+ (let ((out (assoc-ref outputs "out")))
>+ (chdir "src")
>+ (invoke "qmake"
>+ (string-append "QMAKE_CC="
>+ #$(cc-for-target))))))

The `out' variable is not used, so the let can be safely removed and the lambda
simplified, also instead of `chdir', `with-directory-excursion' could be used,
but's a matter of preference (don't know if one or other style is preferred
inside GNU Guix).

For example:

(lambda _
(with-directory-excursion "src"
(invoke "qmake"
(string-append "QMAKE_CC="
#$(cc-for-target)))))

Toggle quote (6 lines)
>+ (replace 'install
>+ (lambda* (#:key outputs #:allow-other-keys)
>+ (let ((out (assoc-ref outputs "out")))
>+ (install-file "Candle"
>+ (string-append out "/bin"))))))))

The `out' binding can be also replaced by `#$output', e.g.:


(lambda* _
(install-file "Candle"
(string-append #$output "/bin")))

Other than that the package definition looks good to me, and did a quick pass
over the Candle source code to check that it doesn't contain any malware.

Only a bundled font is present (src/fonts/Ubuntu-Regular.tff), but that one is
not provided by GNU Guix (don't know the specific reasons, but got added then
removed) so no need to replace it with provided ones.

Jean-Pierre De Jesus DIAZ
A
A
Artyom V. Poptsov wrote on 11 Jul 20:39 +0200
(name . Jean Pierre De Jesus DIAZ)(address . me@jeandudey.tech)(name . 56354@debbugs.gnu.org)(address . 56354@debbugs.gnu.org)
87a69fsddk.fsf@gmail.com
Hello Jean Pierre De Jesus DIAZ.

Toggle quote (5 lines)
> The `out' variable is not used, so the let can be safely removed and the lambda
> simplified, also instead of `chdir', `with-directory-excursion' could be used,
> but's a matter of preference (don't know if one or other style is preferred
> inside GNU Guix).

Done.

Toggle quote (2 lines)
> The `out' binding can be also replaced by `#$output', e.g.:

Done.

I also tried to use 'with-directory-excursion' instead of 'chdir' but
Candle build fails with it, so I kept 'chdir' version.

Toggle quote (7 lines)
> Other than that the package definition looks good to me, and did a quick pass
> over the Candle source code to check that it doesn't contain any malware.

> Only a bundled font is present (src/fonts/Ubuntu-Regular.tff), but that one is
> not provided by GNU Guix (don't know the specific reasons, but got added then
> removed) so no need to replace it with provided ones.

Thanks again for the patch review!

Here's my updated patch.
From 7aac50730febeb95d0f7a4ab1cbb6e7dfb632553 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Thu, 23 Jun 2022 23:02:40 +0300
Subject: [PATCH] gnu: engineering: Add candle.

* gnu/packages/engineering.scm (candle): New variable.
---
gnu/packages/engineering.scm | 61 ++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)

Toggle diff (71 lines)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index fe8ab13298..e1297c0f85 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -3688,3 +3688,64 @@ (define-public xschem
 netlists from the drawn schematic, allowing the simulation of the circuit.")
       (home-page "https://xschem.sourceforge.io/stefan/index.html")
       (license license:gpl2+))))
+
+(define-public candle
+  ;; The latest tagged version 1.2b fails on the build stage due to
+  ;; non-supported g++ flags so we need to use the latest commit from the
+  ;; 'master' branch in the repository.
+  (let ((commit   "3f763bcde1195e23ba119a5b3c70d7c889881019")
+        (revision "1"))
+    (package
+      (name "candle")
+      (version (git-version "1.2b" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/Denvi/Candle")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "08rqhl6a5a8s67a8yl16944zgcsnnb08xfv4klzyqwlvaqgfp783"))))
+      (build-system gnu-build-system)
+      (native-inputs (list qttools))
+      (inputs (list qtbase-5 qtserialport))
+      (arguments
+       (list #:tests? #f                      ; no tests.
+             #:phases #~(modify-phases %standard-phases
+                          (add-after 'unpack 'fix-sources
+                            (lambda _
+                              (substitute* (find-files "." ".*\\.h")
+                                (("const char\\* what\\(\\) const override")
+                                 "const char* what() const noexcept override"))))
+                          (add-after 'unpack 'fix-application-settings-path
+                            (lambda _
+                              (substitute* "src/frmmain.cpp"
+                                (("qApp->applicationDirPath\\(\\) \\+ \"\\/settings\\.ini\"")
+                                 "QDir::homePath() + \"/.config/candle.ini\""))))
+                          (replace 'configure
+                            (lambda _
+                              (chdir "src")
+                              (invoke "qmake"
+                                      (string-append "QMAKE_CC="
+                                                     #$(cc-for-target)))))
+                          (replace 'install
+                            (lambda _
+                              (install-file "Candle"
+                                            (string-append #$output "/bin")))))))
+      (home-page "https://github.com/Denvi/Candle")
+      (synopsis "GRBL controller with G-Code visualizer")
+      (description
+       "GRBL controller application with G-Code visualizer written in Qt.
+
+Supported functions:
+
+@itemize
+@item Controlling GRBL-based cnc-machine via console commands, buttons on
+form, numpad.
+@item Monitoring CNC-machine state.
+@item Loading, editing, saving and sending of G-code files to CNC-machine.
+@item Visualizing G-code files.
+@end itemize")
+      (license license:gpl3))))
+
-- 
2.34.1
- Artyom

--
Artyom "avp" Poptsov <poptsov.artyom@gmail.com>
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F
-----BEGIN PGP SIGNATURE-----

iQFNBAEBCgA3FiEE0MLqwTMQgi2Y3rV86cWi2QiYoC8FAmLMbkcZHHBvcHRzb3Yu
YXJ0eW9tQGdtYWlsLmNvbQAKCRDpxaLZCJigL8IfB/9pbuo2MMbtGezEpfIkQo5Y
HN4JWV9XUh7wEfrOz4pcirOPgf6ebp6B6RyRp1v9IKyCQktbjbPhDUTixcAwY32j
XE1vbWnDgA3DUEd/4/PsPPEFlieVtHoFNhY24cRseGmU2/herhK3dwmoJushtH09
WxQ8/OCfypVj3nET+SH+tBCjVYACVp25/QUIRtrWx07euN7mZznhdX+UV69LtU4W
RRqstRvNomFj4pZB00cnmtLHp8b94++6fVRHY/dNak2NlljGStwJdkTCSd6BIanq
B1R+ytx600bNz7jpJtng0hOWSgntxrF52um3qxp7FSRMHqkv5Mfy5hmNb/QIOJnx
=mxYc
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 12 Jul 23:59 +0200
Re: bug#56354: [PATCH] gnu: engineering: Add candle.
(name . Artyom V. Poptsov)(address . poptsov.artyom@gmail.com)
87zgheat61.fsf_-_@gnu.org
Hi,

"Artyom V. Poptsov" <poptsov.artyom@gmail.com> skribis:

Toggle quote (7 lines)
> From 7aac50730febeb95d0f7a4ab1cbb6e7dfb632553 Mon Sep 17 00:00:00 2001
> From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
> Date: Thu, 23 Jun 2022 23:02:40 +0300
> Subject: [PATCH] gnu: engineering: Add candle.
>
> * gnu/packages/engineering.scm (candle): New variable.

Applied with the changes below. Note that the license is GPLv3+ because
nothing says it’s “version 3 only”. I tweaked the description as per

Thank you, and thanks Jean-Pierre for reviewing!

Ludo’.
Toggle diff (34 lines)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index e1297c0f85..dd594af7f8 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -3721,7 +3721,8 @@ (define-public candle
                           (add-after 'unpack 'fix-application-settings-path
                             (lambda _
                               (substitute* "src/frmmain.cpp"
-                                (("qApp->applicationDirPath\\(\\) \\+ \"\\/settings\\.ini\"")
+                                (("\
+qApp->applicationDirPath\\(\\) \\+ \"\\/settings\\.ini\"")
                                  "QDir::homePath() + \"/.config/candle.ini\""))))
                           (replace 'configure
                             (lambda _
@@ -3736,9 +3737,10 @@ (define-public candle
       (home-page "https://github.com/Denvi/Candle")
       (synopsis "GRBL controller with G-Code visualizer")
       (description
-       "GRBL controller application with G-Code visualizer written in Qt.
+       "Candle is a GRBL controller application with a visualizer for G-Code,
+the @acronym{CNC, computer numerical control} programming language.
 
-Supported functions:
+Supported functions include:
 
 @itemize
 @item Controlling GRBL-based cnc-machine via console commands, buttons on
@@ -3747,5 +3749,4 @@ (define-public candle
 @item Loading, editing, saving and sending of G-code files to CNC-machine.
 @item Visualizing G-code files.
 @end itemize")
-      (license license:gpl3))))
-
+      (license license:gpl3+))))
Closed
?
Your comment

This issue is archived.

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