Subject: Re: bug#46095: [PATCH] gnu: Add mingw-w64-tools.

From: Maxim Cournoyer <[email-masked]>
Date: Wed, 03 Feb 2021 00:10:39 -0500

Hello,

Léo Le Bouter <[email-masked]> writes:

> * gnu/packages/mingw.scm (mingw-w64-tools): New variable.
> ---
>  gnu/packages/mingw.scm | 75 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 75 insertions(+)
>
> diff --git a/gnu/packages/mingw.scm b/gnu/packages/mingw.scm
> index b37f6c69bd..884cb7e39f 100644
> --- a/gnu/packages/mingw.scm
> +++ b/gnu/packages/mingw.scm
> @@ -133,3 +133,78 @@ several new APIs such as DirectX and DDK, and 64-bit support.")
>                    #:with-winpthreads? #t))
>  
>  (define-public mingw-w64 mingw-w64-i686)
> +
> +(define-public mingw-w64-tools
> +  (package
> +    (name "mingw-w64-tools")
> +    (version "7.0.0")

That doesn't seem to be the latest version.  Is there a good reason why?
If so, please add a comment, else use the latest version.

> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append
> +             "mirror://sourceforge/mingw-w64/mingw-w64/"
> +             "mingw-w64-release/mingw-w64-v" version ".tar.bz2"))
> +       (sha256
> +        (base32 "0a5njsa2zw2ssdz10jkb10mhrf3cb8qp9avs89zqmw4n6pzxy85a"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:modules (((guix build gnu-build-system) #:prefix gnu:)
> +                  ,@%gnu-build-system-modules)
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'cd-gendef
> +           (lambda _ (chdir "mingw-w64-tools/gendef")
> +                   #t))

It's a recent change, but ending phases by #t is no longer required.

> +
> +         (add-after 'install 'cd-genidl
> +           (lambda _ (chdir "../genidl")
> +                   #t))
> +         (add-after 'cd-genidl 'configure-genidl
> +           (assoc-ref gnu:%standard-phases 'configure))
> +         (add-after 'configure-genidl 'build-genidl
> +           (assoc-ref gnu:%standard-phases 'build))
> +         (add-after 'build-genidl 'check-genidl
> +           (assoc-ref gnu:%standard-phases 'check))
> +         (add-after 'check-genidl 'install-genidl
> +           (assoc-ref gnu:%standard-phases 'install))
> +
> +         (add-after 'install-genidl 'cd-genlib
> +           (lambda _ (chdir "../genlib")
> +                   #t))
> +         (add-after 'cd-genlib 'configure-genlib
> +           (assoc-ref gnu:%standard-phases 'configure))
> +         (add-after 'configure-genlib 'build-genlib
> +           (assoc-ref gnu:%standard-phases 'build))
> +         (add-after 'build-genlib 'check-genlib
> +           (assoc-ref gnu:%standard-phases 'check))
> +         (add-after 'check-genlib 'install-genlib
> +           (assoc-ref gnu:%standard-phases 'install))
> +
> +         (add-after 'install-genlib 'cd-genpeimg
> +           (lambda _ (chdir "../genpeimg")
> +                   #t))
> +         (add-after 'cd-genpeimg 'configure-genpeimg
> +           (assoc-ref gnu:%standard-phases 'configure))
> +         (add-after 'configure-genpeimg 'build-genpeimg
> +           (assoc-ref gnu:%standard-phases 'build))
> +         (add-after 'build-genpeimg 'check-genpeimg
> +           (assoc-ref gnu:%standard-phases 'check))
> +         (add-after 'check-genpeimg 'install-genpeimg
> +           (assoc-ref gnu:%standard-phases 'install)))))
> +    (home-page "https://mingw-w64.org")
> +    (synopsis "Tools of Minimalist GNU for Windows")
> +    (description
> +     "This package provides tools of Minimalist GNU for Windows.
> +
> +Minimalist GNU for Windows (@dfn{MinGW}) is a complete software
> +development environment for creating native Microsoft Windows applications.
> +
> +It includes a set of Windows-specific header files and static import libraries
> +which enable the use of the Windows API.  It does not rely on any third-party C
> +runtime dynamic-link libraries (@dfn{DLL}s).
> +
> +Mingw-w64 is an advancement of the original mingw.org project and provides
> +several new APIs such as DirectX and DDK, and 64-bit support.")

I'd make it a single paragraph.

> +    (license (list
> +              license:gpl3+
> +              license:lgpl2.1+))))

There should be a comment expliciting why there are two possible
licenses (different files? which ones? dual license? etc.)

Thank you!

Maxim