Subject: [bug#70880] [PATCH 7/8] gnu: Add prusa-wxwidgets.

From: Maxim Cournoyer <[email-masked]>
Date: Sun, 23 Jun 2024 23:28:52 -0400

Hi,

"Artyom V. Poptsov" <[email-masked]> writes:

> * gnu/packages/engineering.scm (prusa-wxwidgets): New variable.
>
> Co-authored-by: Nikita Domnitskii <[email-masked]>
> Change-Id: I9043c2acc95986275ee24d9c5d944e5fe2702e99
> ---
>  gnu/packages/engineering.scm | 27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
>
> diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
> index b1776484b5..08ff06fa94 100644
> --- a/gnu/packages/engineering.scm
> +++ b/gnu/packages/engineering.scm
> @@ -3798,6 +3798,33 @@ (define-public prusa-libbgcode
>         "Prusa Block & Binary G-code reader/writer/converter.")
>        (license license:agpl3))))
>  
> +(define-public prusa-wxwidgets
> +  ;; There is no tag/release, all patches are in separate branch.
> +  (let ((commit "78aa2dc0ea7ce99dc19adc1140f74c3e2e3f3a26"))
> +    (package
> +      (inherit wxwidgets)

Due to not being delayed, inherit fields should only be used with values
defined in the same module.  So you should move prusa-wxwidgets to where
wxwidgets comes from.  See (info '(guix) Cyclic Module Dependencies').

> +      (name "prusa-wxwidgets")
> +      (version "3.2.0")
> +      (home-page "https://github.com/prusa3d/wxWidgets")
> +      (source
> +       (origin
> +         (inherit (package-source wxwidgets))
> +         (method git-fetch)
> +         (uri
> +          (git-reference
> +           (url home-page)
> +           (commit commit)
> +           (recursive? #t)))

Recursive checkouts often mean bundled libraries are pulled and built as
part of the same package, which should be avoided in Guix if the build
system has supports for it.  For this reason, we always leave a comment
explaining why it's needed.

> +         (file-name (git-file-name name version))
> +         (patches (search-patches "prusa-wxwidgets-makefile-fix.patch"))
> +         (sha256
> +          (base32
> +           "02nd07c23xbclnf1jjfbv6r5vqjb80gsdy2l559c5qzgdcvfd2xd"))))
> +      (arguments
> +       (substitute-keyword-arguments (package-arguments wxwidgets)
> +         ((#:configure-flags flags)

Is this done to match upstream configuration?   Perhaps add a comment.

> +          #~(cons "--disable-glcanvasegl" #$flags)))))))
> +
>  (define-public prusa-slicer
>    (package
>      (name "prusa-slicer")

Could you please send a v2?

-- 
Thanks,
Maxim