Subject: [bug#77913] [PATCH] gnu: Add scad-dbus.

From: Nicolas Graves <[email-masked]>
Date: Mon, 05 May 2025 13:55:58 +0200

On 2025-04-19 06:14, [email-masked] wrote:

> * gnu/packages/engineering.scm (scad-dbus): New variable
>
> Change-Id: I6bcc33ef1780f427dc6b612acd25d968ea487258
> ---
>  gnu/packages/engineering.scm | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
>
> diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
> index f37b0e3844..a6a1bb61b2 100644
> --- a/gnu/packages/engineering.scm
> +++ b/gnu/packages/engineering.scm
> @@ -42,6 +42,7 @@
>  ;;; Copyright © 2024 Juliana Sims <[email-masked]>
>  ;;; Copyright © 2024 Nguyễn Gia Phong <[email-masked]>
>  ;;; Copyright © 2025 Frederick Muriuki Muriithi <[email-masked]>
> +;;; Copyright © 2025 nomike Postmann <nomikenomike.com>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -98,6 +99,8 @@ (define-module (gnu packages engineering)
>    #:use-module (gnu packages digest)
>    #:use-module (gnu packages docbook)
>    #:use-module (gnu packages documentation)
> +  #:use-module (gnu packages emacs)

You most likely don't require emacs as native-inputs since it should be
provided in the emacs-build-system.  So you probably don't need this.

> +  #:use-module (gnu packages emacs-xyz)
>    #:use-module (gnu packages file)
>    #:use-module (gnu packages flex)
>    #:use-module (gnu packages fontutils)
> @@ -3269,6 +3272,37 @@ (define-public emacs-scad-mode
>  OpenSCAD code.  It supports syntax highlighting, indenting and refilling of
>  comments.")))
>  
> +(define-public scad-dbus
> +  (package
> +    (name "scad-dbus")
> +    (version "0.1")
> +    (properties '((release-tag-prefix . "^v")
> +                  (release-tag-version-delimiter . ".")))
> +    (license license:gpl3+)
> +    (native-inputs (list emacs))
> +    (inputs (list emacs-scad-mode emacs-hydra))
> +    (build-system emacs-build-system)

Those fields are usually at the end of the record.  Please conform to
classic order (source > build-system > arguments > various inputs >
home-pag > synopsis > description > license), it's easier to review in this case.

> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/lenbok/scad-dbus")
> +             (commit version)))

This should be (string-append "v" version), the hash should be updated too.

> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "1r9qiiyr4m04yh38zlmrk7r23s7w9rsiy0nkq0x8x2ci7fsy2qyf"))))
> +    (arguments
> +     `(#:phases (modify-phases %standard-phases
> +                  )))

This field can be removed.

> +    (synopsis "Control OpenSCAD from Emacs using D-Bus")
> +    (description
> +     "@code{OpenSCAD} has the ability to use D-Bus (an Linux IPC
> +mechanism) as an input driver, which allows manipulation of the viewport and
> +execution of menu commands.  Since Emacs also speaks D-Bus, we can execute most
> +of the OpenSCAD GUI adjustments without having to switch windows or reach for
> +our mouse.")
> +    (home-page "https://github.com/lenbok/scad-dbus")))
> +
>  (define-public ondsel-solver
>    (let ((commit "2e3659c4bce3e6885269e0cb3d640261b2a91108")
>          (revision "1"))

-- 
Best regards,
Nicolas Graves