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

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

Hello,

Maxim Cournoyer <[email-masked]> writes:

> 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

I've addressed the above comments, refactored the phases and added the
widl tool; you can see the result in commit
44c98c997933c4dc531775f1bb0848b39c7abf37.  The version of mingw-w64 is
now 8.0.0.

Closing,

Maxim